ホームページ  >  記事  >  バックエンド開発  >  Sina IP ライブラリを使用して IP 詳細アドレスを取得する

Sina IP ライブラリを使用して IP 詳細アドレスを取得する

WBOY
WBOYオリジナル
2016-07-23 08:54:471145ブラウズ
新浪IP库获取IP详细地址
  1. class Tool{
  2. /**
  3. * IP 所有権を取得 (Sina IP ライブラリ)
  4. *
  5. * @param $ip String IP アドレス: 112.65.102.16
  6. * @return Array
  7. */
  8. static public function getIpCity($ip)
  9. {
  10. $ip = preg_replace("/s/ ","",preg_replace("/rn/","",$ip));
  11. $link = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip= ".$ip."&t=".time();
  12. $ipJson = self::httpCurl($link);
  13. preg_match("/"country":"(.*)"/Uis",$ipJson, $ match1);
  14. preg_match("/"県":"(.*)"/Uis",$ipJson, $match2);
  15. preg_match("/"市":"(.*)"/Uis",$ipJson , $match3);
  16. return array(
  17. 'country'=>self::ucode2zh($match1[1]), // 国家
  18. 'province'=>self::ucode2zh($match2[1]), // 省
  19. 'city'=>self::ucode2zh($match3[1]) // 城市
  20. );
  21. }
  22. /**
  23. *情報を取得するためのCurlメソッド
  24. */
  25. 静的パブリック関数 httpCurl($url)
  26. {
  27. $curl_handle =curl_init();
  28. curl_setopt($curl_handle, CURLOPT_URL, $url);
  29. curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
  30. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);
  31. curl_setopt($curl_handle, CURLOPT_FAILONERROR,1);
  32. $file_content =curl_exec($curl_handle);
  33. curl_close($curl_handle);
  34. $file_content を返します;
  35. }
  36. /**
  37. * Unicode エンコーディングを中国語に変換し、変換が失敗した場合は元の文字列を返します
  38. *
  39. * @param $code String unicode エンコーディング
  40. * @return String
  41. */
  42. static public function ucode2zh($code)
  43. {
  44. $temp =explode('u',$code);
  45. $rslt = array();
  46. array_shift($temp );
  47. foreach($temp as $k => $v)
  48. {
  49. $v = hexdec($v);
  50. $rslt[] = '' 。 $v 。 ';';
  51. }
  52. $r = implode('',$rslt);
  53. return empty($r) ? $コード: $r;
  54. }
  55. }
🎷取IP地址类使用例
$ipStr = Tool::getIpCity('112.65.102.16');
print_r($ipStr);
  1. #返還结果
  2. Array ( [国] => 中国 [省] => 上海 [都市] => 上海 )
  3. 复制代码
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。