欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

通过api获取访问的ip来源

程序员文章站 2022-04-12 13:17:00
...
使用新浪或者阿里的地址库
<?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