获取Ip 的地域等信息接口-实例

今天项目要用到 查询访问网站用户的IP 
然后网上查询了 资料还很多 不过有些已经失效了 在这总结下 
腾讯,pconline 的API已经失效 不能使用 
淘宝的IP接口地址: http://ip.taobao.com/instructions.php 
腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress 
新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 
新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42 
搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson 
搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8 
搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip 
这个上面大多都容易查到 
还有一个 API比较全面 
http://whois.pconline.com.cn 这个很强大 也比较详细 
但是这个有问题 他JSON格式 属于回调  本地运行可以 放到项目里面就报错403 
最终我也没有选择这个来使用 

    /**
     * 获取ip 接口
     * @access public 以淘宝的接口为实例
     */
    public function get_ip_info($ip) {
        $curl = curl_init(); //这是curl的handle
        //下面是设置curl参数
        $url = "http://ip.taobao.com/service/getIpInfo.php?ip=$ip";
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl, CURLOPT_HEADER, 0); //don't show header
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //相当关键,这句话是让curl_exec($ch)返回的结果可以进行赋值给其他的变量进行,json的数据操作,如果没有这句话,则curl返回的数据不可以进行人为的去操作(如json_decode等格式操作)
        curl_setopt($curl, CURLOPT_TIMEOUT, 2);
        //这个就是超时时间了
        $data = curl_exec($curl);
        return json_decode($data, true);
    }

 

posted @ 2015-12-14 10:50  timelesszhuang  阅读(3258)  评论(0编辑  收藏  举报