上一个IP获取的结果不是很完善,究其原因是因为ip138的IP解析应对国外的地址时不是很详细,所以又重新写了个用Chianz.com的代码。
<!
DOCTYPE html
>
< html lang = " en " >
< head >
< title ></ title >
< meta charset = " UTF-8 " />
< meta name = " author " content = "" />
< meta name = " keywords " content = "" />
< meta name = " description " content = "" />
</ head >
< body >
<? php
$ipAddr = " 4.4.44.4 " ;
$ipChinazAddr = " http://tool.chinaz.com/IP/?IP= " . $ipAddr ;
$contents = file_get_contents ( $ipChinazAddr );
$pattern = " /\=\=\>\>.+\<\/strong\>\<br \/\>/ " ;
$string = $contents ;
preg_match_all ( $pattern , $string , $addrArray );
$num = count ( $addrArray [ 0 ]);
$pattern = " /(==>>).+(==>>\s)/ " ;
for ( $i = 0 ; $i < $num ; $i ++ ){
$addrArray [ 0 ][ $i ] = preg_replace ( $pattern , "" , $addrArray [ 0 ][ $i ]);
}
echo " <pre> " ;
print_r ( $addrArray );
echo " </pre> " ;
?>
</ body >
</ html >
< html lang = " en " >
< head >
< title ></ title >
< meta charset = " UTF-8 " />
< meta name = " author " content = "" />
< meta name = " keywords " content = "" />
< meta name = " description " content = "" />
</ head >
< body >
<? php
$ipAddr = " 4.4.44.4 " ;
$ipChinazAddr = " http://tool.chinaz.com/IP/?IP= " . $ipAddr ;
$contents = file_get_contents ( $ipChinazAddr );
$pattern = " /\=\=\>\>.+\<\/strong\>\<br \/\>/ " ;
$string = $contents ;
preg_match_all ( $pattern , $string , $addrArray );
$num = count ( $addrArray [ 0 ]);
$pattern = " /(==>>).+(==>>\s)/ " ;
for ( $i = 0 ; $i < $num ; $i ++ ){
$addrArray [ 0 ][ $i ] = preg_replace ( $pattern , "" , $addrArray [ 0 ][ $i ]);
}
echo " <pre> " ;
print_r ( $addrArray );
echo " </pre> " ;
?>
</ body >
</ html >
结果还令人满意
以上是本人写的两个获取IP物理地址的代码,作为一个初学者,没事的时候写写简单的代码也还是一件挺有意思的事。但是毕竟是一个初学者,不能更好的注意安全性、空间利用率、时间效率等问题,还望各位留下你的足迹,小弟谢了