Maison >développement back-end >tutoriel php >PHP implémente une méthode d'obtention d'une adresse IP détaillée basée sur la bibliothèque IP Sina
Cet article présente principalement la méthode d'obtention d'une adresse IP détaillée en PHP basée sur la bibliothèque IP Sina, impliquant des compétences opérationnelles PHP régulières, curl et liées à la conversion de codage. Les amis dans le besoin peuvent se référer à
Les détails sont les suivants. suit :
<?php class Tool{ /** * 获取IP的归属地( 新浪IP库 ) * * @param $ip String IP地址:112.65.102.16 * @return Array */ static public function getIpCity($ip) { $ip = preg_replace("/\s/","",preg_replace("/\r\n/","",$ip)); $link = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$ip."&t=".time(); $ipJson = self::httpCurl($link); preg_match("/\"country\":\"(.*)\"/Uis",$ipJson, $match1); preg_match("/\"province\":\"(.*)\"/Uis",$ipJson, $match2); preg_match("/\"city\":\"(.*)\"/Uis",$ipJson, $match3); return array( 'country'=>self::ucode2zh($match1[1]), // 国家 'province'=>self::ucode2zh($match2[1]), // 省 'city'=>self::ucode2zh($match3[1]) // 城市 ); } /** * Curl方式获取信息 */ static public function httpCurl($url) { $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $url); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); $file_content = curl_exec($curl_handle); curl_close($curl_handle); return $file_content; } /** * 将unicode编码转化为中文,转化失败返回原字符串 * * @param $code String unicode编码 * @return String */ static public function ucode2zh($code) { $temp = explode('\u',$code); $rslt = array(); array_shift($temp); foreach($temp as $k => $v) { $v = hexdec($v); $rslt[] = '' . $v . ';'; } $r = implode('',$rslt); return empty($r) ? $code : $r; } }
Obtenir l'instance d'utilisation de la classe d'adresse IP
<?php $ipStr = Tool::getIpCity('112.65.102.16'); print_r($ipStr);
Retour des résultats
Array ( [country] => 中国 [province] => 上海 [city] => 上海 )
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
PHP Exemple de code pour la fonction strstr permettant de déterminer si une chaîne existe_php basics
Comment simplement sauvegarder et restaurer MySql dans les conseils php_php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!