您现在的位置是:首页 > 教程 > 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的缓存存放在templates/caches/文章夹下,时间长了这个文件夹就会非常庞大,拖慢网站速度。还有很多情况我们不需要他的缓存。本文介绍禁用ECSHOP缓存的方法。 -
ecshop文章排序的实现方法
在我们利用ecshop进行商城网站建设的时候常常用到文章,ecshop中的文章功能相对于其他的cms要弱的很多不过以基本满足了网站商城中文章发布的应用,但是ecshop文章的推荐功能只 -
ecshop访问连接错误404页面优化方法
在ecshop系统当中,比如你随意将商品详细页面的地址中的ID修改为一个不存在的商品ID,ecshop会自动跳转到首页。 -
ecshop添加通过快递单号搜索订单的实现方法
有时候订单太多,我们想直接通过快递单号搜索找到该订单,那么ecshop后台如何修改?需要修改admin/order.php,admin/templates/order_list.htm两个文件
留言与评论 (共有 条评论) |