• 技术文章 >php教程 >PHP源码

    通过api获取访问的ip来源

    PHP中文网PHP中文网2016-05-26 08:19:37原创789
    使用新浪或者阿里的地址库

    <?php
    /**
     * ip search
     * Created by PhpStorm.
     * User: saint
     * Date: 14-10-23
     * Time: 下午4:28
     */
     
    class ip_lib
    {
        // 淘宝ip地址库
        public function get_ip_info_taobao($ip)
        {
            $server_api = 'http://ip.taobao.com/service/getIpInfo.php?ip=';
            $uri = $server_api . $ip;
     
            $json_string = $this->get_remote_data($uri);
     
            $array = json_decode($json_string, true);
            $ret = array();
            if($array['code'])
            {
                $ret = array(
                    'country' => '未知',
                    'city' => '未知',
                    'isp' => '未知'
                );
            }
            else
            {
                $ret['country'] = $array['data']['country'] ? $array['data']['country'] : '未知';
                $ret['city'] = $array['data']['city'] ? $array['data']['city'] : '未知';
                $ret['isp'] = $array['data']['isp'] ? $array['data']['isp'] : '未知';
            }
     
            return $ret;
        }
     
        // 新浪ip地址库
        public function get_ip_info_sina($ip)
        {
            $server_api = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=';
            $uri = $server_api . $ip;
     
            $json_string = $this->get_remote_data($uri);
     
            $array = json_decode($json_string, true);
            $ret = array();
            if($array['ret'] != 1)
            {
                $ret = array(
                    'country' => '未知',
                    'city' => '未知',
                    'isp' => '未知'
                );
            }
            else
            {
                $ret['country'] = $array['country'] ? $array['country'] : '未知';
                $ret['city'] = $array['province'] ? $array['province'] : '未知';
                $ret['isp'] = $array['city'] ? $array['city'] : '未知';
            }
     
            return $ret;
        }
     
        private function get_remote_data($uri)
        {
            $ch = curl_init($uri) ;
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回
            curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
            return $output = curl_exec($ch) ;
        }
    }
    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:QueryList最简单的PHP采集工具,以采集百度乐彩彩票开奖号为例 下一篇:微信JSAPI 微信内置JSAPI 2015年1月官方正式API接口,分享完整实例
    大前端线上培训班

    相关文章推荐

    • php生成略缩图程序代码与详细介绍• 一个简易的PHP文件上传类(适合与新手学习用)• 正则表达式普适两个原则• DZX1.5加解密函数authcode分享• Yaf框架入门只hello yaf

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网