您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop商城IP库版本升级补丁
傅利2024-04-20 18:16:52ecshop商城教程已有人查阅
导读ECSHOP官方更新了多个版本,但IP库一直没更新,版本为20071024,相当鸡肋,本升级程序读取纯真IP数据库,独有高压缩比和快速检索算法。
ECSHOP官方更新了多个版本,但IP库一直没更新,版本为20071024,相当鸡肋,本升级程序读取纯真IP数据库,独有高压缩比和快速检索算法。
新版纯真IP库
升级指南
一、下载纯真IP数据库,地址一:本站下载,下载后请重命名为ipdata.dat,覆盖至/includes/codetable/。
二、编辑/includes/lib_base.php,将函数ecs_geoip($ip)替换为
* 获取IP对应的地理位置 * @paramstring
$ip
字符串 * @return string */ function ecs_geoip($ip) { $return = ''; if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/", $ip)) { $iparray = explode('.', $ip); if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] <= 31))) { $return = 'LAN'; } elseif($iparray[0] > 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255) { $return = 'Invalid IP Address'; } else { $tinyipfile = ROOT_PATH . 'includes/codetable/ipdata.dat'; //ipdata.dat-纯真网络IP库 if(@file_exists($tinyipfile)) { $return = convertip_tiny($ip, $tinyipfile); } } } return $return; } function convertip_tiny($ip, $ipdatafile) { static $fp = NULL, $offset = array(), $index = NULL; $ipdot = explode('.', $ip); $ip = pack('N', ip2long($ip)); $ipdot[0] = (int)$ipdot[0]; $ipdot[1] = (int)$ipdot[1]; if($fp === NULL && $fp = @fopen($ipdatafile, 'rb')) { $offset = @unpack('Nlen', @fread($fp, 4)); $index = @fread($fp, $offset['len'] - 4); } elseif($fp == FALSE) { return 'Invalid IP data file'; } $length = $offset['len'] - 1028; $start = @unpack('Vlen', $index[$ipdot[0] * 4] . $index[$ipdot[0] * 4 + 1] . $index[$ipdot[0] * 4 + 2] . $index[$ipdot[0] * 4 + 3]); for ($start = $start['len'] * 8 + 1024; $start < $length; $start += 8) { if ($index{$start} . $index{$start + 1} . $index{$start + 2} . $index{$start + 3} >= $ip) { $index_offset = @unpack('Vlen', $index{$start + 4} . $index{$start + 5} . $index{$start + 6} . "\x0"); $index_length = @unpack('Clen', $index{$start + 7}); break; } } @fseek($fp, $offset['len'] + $index_offset['len'] - 1024); if($index_length['len']) { return @fread($fp, $index_length['len']); } else { return 'Unknown'; } }
本文标签:
很赞哦! ()
相关文章
- ecshop商城首页增加一个商品浏览排行榜的实现方法
- ecshop商城怎么增加新独立页面
- ecshop商城安全优化ecshop防注入屏蔽SQL提示实例
- ecshop商城让所有页面都显示新文章提高SEO优化的实现方法
- ecshop商城SEO优化,ecshop预防死链站内页面301跳转写法
- ecshop商城后台订单选择加入商品时提示库存不足的修改方法
- ecshop商城商品搜索结果页显示商品货号的方法
- ecshop商城任意页面添加调用显示文章代码实例
- ecshop商城调用指定分类新品商品/热门商品/推荐商品可设置商品数量
- ecshop商城首页显示积分商品调用积分商品的代码示例
- ecshop商城数据备份搬家恢复数据步骤教程
- ecshop商城杂志管理设置说明介绍
随机图文
-
ecshop商品分类列表显示一个空商品错位的修改方法
在我们制作ecshop之时,有时候会发现商品列表或者其他商品页最后会多出一个商品其实解决只要在商品循环列表中加一个判断就可以,像这样: -
ecshop商品搜索页title商品搜索文字怎么删除
去掉ecshop搜索页Title里的“商品搜索”四个字的方法:修改 search.php 文件 -
ecshop新会员注册自动发送邮件通知管理员
步骤一:更改数据库用MySQL管理工具找到 ecs_mail_templates表插入一条新会员注册邮件提醒模板数据。INSERT INTO ecs_mai -
ecshop商品列表商品按商品货号排序
今天看到一网友问此类问题,稍微写了些,希望能帮到同样有此需求的朋友下面过程是在 BigSale 模板基础上实现的,其他模板方法原理是一样的
留言与评论 (共有 条评论) |