ecshop

ECSHOP IP库版本升级补丁

ECSHOP教程 来源: ECSHOP教程网www.ecshop119.com 时间:2013-11-06 ECSHOP教程分类:其他ECSHOP教程

ECSHOP官方更新了多个版本,但IP库一直没更新,版本为20071024,相当鸡肋,本升级程序读取纯真IP数据库,独有高压缩比和快速检索算法。

新版纯真IP库

ECSHOPip

升级指南

一、下载纯真IP数据库,地址一:本站下载,下载后请重命名为ipdata.dat,覆盖至/includes/codetable/。

二、编辑/includes/lib_base.php,将函数ecs_geoip($ip)替换为


* 获取IP对应的地理位置
* @param   string      $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教程网https://www.ecshop119.com/ecshopjc-226.html

ECSHOP
ecshop下载 ecshop安装教程 ecshop在线演示 ecshop后台测试
ECSHOP二次开发手册
ecshop教程 ecshop二次开发 ecshop模板教程 ecshop微信配置
ECSHOP商城网站建设
ecshop空间域名 ecshop商城建设 ecshop模板修改 ecshop开发定制
ECSHOP模板屋
ecshop开发团队 ecshop开发中心 ecshop模板制作 模板屋简介
服务支持:7X24小时 151 059 55077
ECShop二次开发
ecshop搭建
qqtelcodeback_top
温馨提示

确定取消
温馨提示

关闭