php调用免费接口查询IP归属地
php调用免费接口查询IP归属地 淘宝查询接口(较慢) $url = 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip; //用curl发送接收数据 $ch = curl_init($url); curl_setopt($ch,CURLOPT_ENCODING,'utf8'); curl_setopt($ch,CURLOPT_TIMEOUT,10); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $location = curl_exec($ch); $location = json_decode($location); curl_close($ch); $ip_location = ''; if(!empty($location) && $location->code == 0) { $ipdata = $location->data; //国家 if ($ipdata->country != "XX") { $ip_location = $ip_location . $ipdata->country; } //地区 if ($ipdata->region != "XX") { $ip_location = $ip_location . $ipdata->region; } //城市 if ($ipdata->city != "XX" && $ipdata->city != $ipdata->region) { $ip_location = $ip_location . $ipdata->city; } //县级 if ($ipdata->county != "XX" && $ipdata->county != $ipdata->city) { $ip_location = $ip_location . $ipdata->county; } //网络 if ($ipdata->isp != "XX" && $ipdata->isp != $ipdata->city) { $ip_location = $ip_location . $ipdata->isp; } } return($ip_location); 126接口 $ch = curl_init(); $url = 'http://ip.ws.126.net/ipquery'; $header = array( "CLIENT-IP:$ip", "X-FORWARDED-FOR:$ip" ); //用curl发送接收数据 curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HTTPHEADER,$header); curl_setopt($ch,true); $location = curl_exec($ch); curl_close($ch); //转码 $location = mb_convert_encoding($location,'utf-8','GB2312'); //以“”为分界符转换成数组 $location = explode('"',$location); $ip_location = ''; if ($location && !empty($location[7])){ $ip_location .= $location[7]; } if ($location && !empty($location[5])){ $ip_location .= $location[5]; } return $ip_location; 其他接口(这个较上两种更好用) $ch = curl_init(); $url = 'https://whois.pconline.com.cn/ipJson.jsp?ip='.$ip; //用curl发送接收数据 curl_setopt($ch,true); //请求为https curl_setopt ( $ch,CURLOPT_SSL_VERIFYPEER,false ); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); $location = curl_exec($ch); curl_close($ch); //转码 $location = mb_convert_encoding($location,'GB2312'); //var_dump($location); //截取{}中的字符串 $location = substr($location,strlen('({')+strpos($location,'({'),(strlen($location) - strpos($location,'})'))*(-1)); //将截取的字符串$location中的‘,’替换成‘&’ 将字符串中的‘:‘替换成‘=’ $location = str_replace('"',"",str_replace(":","=",str_replace(",","&",$location))); //php内置函数,将处理成类似于url参数的格式的字符串 转换成数组 parse_str($location,$ip_location); return $ip_location['addr']; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |