首页> 实战笔录 >PHP开发笔记 >PHP PHP
PHP调用接口获取ip所在地区
作者:小萝卜 2019-09-18 【 PHP 】 浏览 1784
简介PHP根据ip获取ip的归属地址,PHP调用淘宝接口获取ip归属地,PHP调用新浪接口获取IP归属地
PHP根据ip获取ip所在地区
PHP获取ip归属地的方法有很多种(比如腾讯接口),这里萝卜就不一一说明了,这里主要分享下淘宝获取ip归属地接口和新浪的接口。
1.获取客户端IP地址
//获取用户端IP
function clientIP(){
$cIP = getenv('REMOTE_ADDR');
$cIP1 = getenv('HTTP_X_FORWARDED_FOR');
$cIP2 = getenv('HTTP_CLIENT_IP');
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
}
2.根据淘宝接口构造一个方法
/**
* 获取 IP 地理位置
* 淘宝IP接口
* @Return: array
*/
function getCity($ip = '')
{
$url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
$ip=json_decode(file_get_contents($url));
if((string)$ip->code=='1'){
return false;
}
$data = (array)$ip->data;
$loc=$data['region'].$data['city'];
return $loc;
}
3.根据新浪接口构造方法
/*
*调用新浪接口获取ip所在 地区
*/
public function getIPLoc_sina($queryIP){
$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;
$ch = curl_init($url);
//curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回
$location = curl_exec($ch);
$location = json_decode($location);
curl_close($ch);
$loc = "";
if($location===FALSE) return "";
if (empty($location->desc)) {
$loc = $location->province.$location->city.$location->district.$location->isp;
}else{
$loc = $location->desc;
}
if($loc=''){
$loc="未获取到";
}
return $loc;
}
4.调用接口
$uip = clientIP(); //获取ip
echo getCity($uip);//通过淘宝接口获取ip所在地区
echo getIPLoc_sina($uip);//通过新浪接口获取ip所在地区
最后说一点,新浪接口不是很稳定,推荐大家使用淘宝的接口!
很赞哦! (0)