加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php调用免费接口查询IP归属地

发布时间:2020-12-13 05:18:37 所属栏目:PHP教程 来源:网络整理
导读: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_s

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'];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读