fseek($fd, $ipbegin + 7 * $middle);
$ipdata1 = fread($fd, 4);
if(strlen($ipdata1) fclose($fd);
return 'system error';
}
$ip1num = implode('', unpack('l', $ipdata1));
if($ip1num
if($ip1num > $ipnum) {
$endnum = $middle;
continue;
}
$dataseek = fread($fd, 3);
if(strlen($dataseek) fclose($fd);
return 'system error';
}
$dataseek = implode('', unpack('l', $dataseek.chr(0)));
fseek($fd, $dataseek);
$ipdata2 = fread($fd, 4);
if(strlen($ipdata2) fclose($fd);
return 'system error';
}
$ip2num = implode('', unpack('l', $ipdata2));
if($ip2num if($ip2num if($middle == $beginnum) {
fclose($fd);
return 'unknown';
}
$beginnum = $middle;
}
}
$ipflag = fread($fd, 1);
if($ipflag == chr(1)) {
$ipseek = fread($fd, 3);
if(strlen($ipseek) fclose($fd);
return 'system error';
}
$ipseek = implode('', unpack('l', $ipseek.chr(0)));
fseek($fd, $ipseek);
$ipflag = fread($fd, 1);
}
if($ipflag == chr(2)) {
$addrseek = fread($fd, 3);
if(strlen($addrseek) fclose($fd);
return 'system error';
}
$ipflag = fread($fd, 1);
if($ipflag == chr(2)) {
$addrseek2 = fread($fd, 3);
if(strlen($addrseek2) fclose($fd);
return 'system error';
}
$addrseek2 = implode('', unpack('l', $addrseek2.chr(0)));
fseek($fd, $addrseek2);
} else {
fseek($fd, -1, seek_cur);
}
while(($char = fread($fd, 1)) != chr(0))
$ipaddr2 .= $char;
$addrseek = implode('', unpack('l', $addrseek.chr(0)));
fseek($fd, $addrseek);
while(($char = fread($fd, 1)) != chr(0))
$ipaddr1 .= $char;
} else {
fseek($fd, -1, seek_cur);
while(($char = fread($fd, 1)) != chr(0))
$ipaddr1 .= $char;
$ipflag = fread($fd, 1);
if($ipflag == chr(2)) {
$addrseek2 = fread($fd, 3);
if(strlen($addrseek2) fclose($fd);
return 'system error';
}
$addrseek2 = implode('', unpack('l', $addrseek2.chr(0)));
fseek($fd, $addrseek2);
} else {
fseek($fd, -1, seek_cur);
}
while(($char = fread($fd, 1)) != chr(0)){
$ipaddr2 .= $char;
}
}
fclose($fd);
if(preg_match('/http/i', $ipaddr2)) {
$ipaddr2 = '';
}
$ipaddr = $ipaddr1 $ipaddr2;
$ipaddr = preg_replace('/cz88.net/is', '', $ipaddr);
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {
$ipaddr = 'unknown';
}
return $ipaddr;
}
?>
使用说明:
1、先把上面的代码保存为php文件,然后在网上下载纯真ip数据库教程qqwry.dat,修改上述函数中的数据库连接路径代码“$dat_path = '../qqwry.dat';”;
2、调用函数:
