Home Article ip获取所在城市名称接口-PHP

ip获取所在城市名称接口-PHP

Source:ip获取所在城市名称接口-PHP Release time:2019-07-22 Author:Mr.赵 Reading volume:71

//淘宝接口:根据ip获取所在城市名称

function get_area($ip = ''){

    if($ip == ''){

        $ip = GetIp();

    }

    $url = "http://ip.taobao.com/service/getIpInfo.php?ip={$ip}";

    $ret = https_request($url);

    $arr = json_decode($ret,true);

    return $arr;

}

echo "<pre>";

print_r(get_area('223.67.235.28'));

echo "</pre>";

//新浪接口:根据ip获取所在城市名称

function GetIpLookup($ip = ''){

    if(empty($ip)){

        $ip = GetIp();

    }

    $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);//新浪的开放API

    if(empty($res)){ return false; }

    $jsonMatches = array();

    preg_match('#\{.+?\}#', $res, $jsonMatches);

    if(!isset($jsonMatches[0])){ return false; }

    $json = json_decode($jsonMatches[0], true);

    if(isset($json['ret']) && $json['ret'] == 1){

        $json['ip'] = $ip;

        unset($json['ret']);

    }else{

        return false;

    }

    return $json;

}

 

echo '<pre>';

// 输出城市等信息

$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址

var_dump($ipInfos);

 

// 输出本地地址

echo GetIp();

 

 

 

//POST请求函数

function https_request($url,$data = null){

    $curl = curl_init();

     

    curl_setopt($curl,CURLOPT_URL,$url);

    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);

    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);

     

    if(!empty($data)){//如果有数据传入数据

        curl_setopt($curl,CURLOPT_POST,1);//CURLOPT_POST 模拟post请求

        curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//传入数据

    }

     

    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

    $output = curl_exec($curl);

    curl_close($curl);

     

    return $output;

}

 

// 获取ip

function GetIp(){

    $realip = '';

    $unknown = 'unknown';

    if (isset($_SERVER)){

        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){

            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

            foreach($arr as $ip){

                $ip = trim($ip);

                if ($ip != 'unknown'){

                    $realip = $ip;

                    break;

                }

            }

        }else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){

            $realip = $_SERVER['HTTP_CLIENT_IP'];

        }else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){

            $realip = $_SERVER['REMOTE_ADDR'];

        }else{

            $realip = $unknown;

        }

    }else{

        if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){

            $realip = getenv("HTTP_X_FORWARDED_FOR");

        }else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){

            $realip = getenv("HTTP_CLIENT_IP");

        }else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){

                $realip = getenv("REMOTE_ADDR");

        }else{

            $realip = $unknown;

        }

    }

    $realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;

    return $realip;

}

  
I want to comment
Leave a message
http://boke.zhaozhiqi.top/index.php/
User login
You have not written any reviews yet!
You have commented!
Can only praise once!
You have a collection!