关于使用PHP实现地址调用

中原 @ 2009-3-31 10:58 Tue | 分类:学习

 

恩,如果用珊瑚虫或者纯真的话网上的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 '未知区域.'; 
?>