首页> 实战笔录 >PHP开发笔记 >PHP PHP

PHP调用接口获取ip所在地区

作者:小萝卜 2019-09-18 浏览 1311

简介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)

文章评论

    高端网站建设