恩,如果用珊瑚虫或者纯真的话网上的PHP类一大把,略去。我们说的格式主要是内网(假设全部是10.x.x.x)情况,我想PHPwind里面应该可以提取到这个东西。
我们把问题弄复杂点,用phpwind的全部数据,开始判断一下文件
主要运用的函数是ip2long,不认识这个函数的翻下手册吧。没什么高深思想,直接贴代码吧
<? php $ip=trim($_GET['ip']); if(preg_match('/[^.0-9]/',$ip)) exit('IP格式错误.'); $inputIp=ip2long($ip); $ipdataFile='http://www.phpwind.net/ipdata/'.substr($ip,0,strpos($ip,'.')).'.txt'; !file_exists($ipdataFile) && $ipdataFile='http://www.phpwind.net/ipdata/0.txt'; $sFile=file($ipdataFile); foreach($sFile as $sLine){ $arrIpdata=explode("\t",$sLine); $startIp=ip2long($arrIpdata[0]); $endIp=ip2long($arrIpdata[1]); $area=$arrIpdata[2].$arrIpdata[3]; if($inputIp>=$startIp && $inputIp<=$endIp){ echo $area; define("IF_SUCCESS",true); break; } } if(!defined("IF_SUCCESS")) echo '未知区域.'; ?>