在项目中用到查询IP来源地址的功能,在网上搜索了一下免费的IP地址数据库未果,就直接使用ip138网站做为数据来源了,通过直接使用PHP代码去查询IP信息,然后分析网页来得到地址,最后插入数据库。
$content = iconv("gb2312", "utf-8",file_get_contents("http://www.ip138.com/ips8.asp?action=2&ip=$ip"));
var_dump($content);
$pos = strpos($content, "<li>本站主数据");
echo "起始位置$pos</br>";
if(!$pos){
hi_logerr("没有查询到IP所在地地址!");
echo "error</br>";
return false;
}
$endPos = stripos($content, "</li>", $pos);
$jumpLen = strlen("<li>本站主数据:");
$address = substr($content, $pos + $jumpLen, $endPos - $pos - $jumpLen);
$sql = "INSERT INTO `ipmap` (`ip` ,`from` ,`updateTime` )VALUES ('$c_ip','$address',CURRENT_TIMESTAMP )";