正则表达式——获取指定IP的物理地址
生活随笔
收集整理的這篇文章主要介紹了
正则表达式——获取指定IP的物理地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正則表達式——獲取指定IP的物理地址
網站常用的模塊可能出了注冊、登陸、發稿、留言、評論,剩下比較重要的也許就是獲取IP并作相應的數據處理了。自己搭建IP數據庫占資源,而且更新不便,何不使用現成的IP查詢呢?下面自己寫了個獲取IP物理地址的PHP代碼(有一定的瑕疵,請高手不吝賜教)
<!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 = "218.75.124.100";
$ip138Addr = "http://www.ip138.com/ips8.asp?ip=".$ipAddr."&action=2";
$contents = file_get_contents($ip138Addr);
$pattern = "/\<li.+?\/li\>/";
$string = $contents;
preg_match_all($pattern,$string,$addrArray);
$num = count($addrArray[0]);
for($i = 0;$i<$num;$i++){
echo $addrArray[0][$i] = mb_convert_encoding($addrArray[0][$i],"UTF-8", "GB2312");
switch($i) {
case 0:$str = "<li>本站主數據:</li>";break;
case 1:$str = "<li>參考數據一:</li>";break;
case 2:$str = "<li>參考數據二:</li>";break;
case 3:$str = "<li>參考數據三:</li>";break;
case 4:$str = "<li>參考數據四:</li>";break;
case 5:$str = "<li>參考數據六:</li>";break;
case 6:$str = "<li>參考數據七:</li>";break;
}
$addrArray[0][$i] = trim($addrArray[0][$i],$str);
}
$addrArray[0][0] = trim($addrArray[0][0],":");
echo "<pre>";
print_r($addrArray);
echo "</pre>";
?>
</body>
</html> 復制代碼
這段代碼采用訪問http://www.ip138.com后使用正則表達式進行截取部分內容,其中正則表達式是自己寫的。
開始還好,下面的處理結果出現了亂碼,如果把$str(去除字符串首尾的標識)定義的字符串就沒有了亂碼;而且再加一個單獨的去除“:”的語句,就可以實現無亂碼的現象,不知道為什么了……
總結
以上是生活随笔為你收集整理的正则表达式——获取指定IP的物理地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php根据IP获取所有地,腾讯IP AP
- 下一篇: .Net 编码以及与这些编码关联的代码页