php 通过 ip地址 进行城市定位

ip城市定位新浪接口:

   /**
     * 新浪ip 地址获取城市信息
     */
    //根据ip 地址获取所在城市信息
	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, 5);
		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;
		}
		return $loc;
	}
    echo getIPLoc_sina("183.37.209.57");

ip地址 ip138 地址查询

header("content-type:text/html;charset=utf8");
    
	function get_city($ip=null) {

        $ip = $ip?$ip:$_SERVER['REMOTE_ADDR'];
        $url = "http://www.ip138.com/ips1388.asp?ip=$ip&action=2";

        $res = file_get_contents($url);
        // 将网页 转码 成utf8
        $encode = mb_detect_encoding($res, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
        if($encode != "UTF-8"){
            $res = iconv($encode,"UTF-8", $res);
        }

        $pos =  stripos($res,"本站主数据:");
        $str = substr($res, $pos, 60);

        if (preg_match('/^本站主数据:(.+)省(.+)市/i', $str, $m)) {
            $addr = array();
            $addr['prov'] = $m[1];
            $addr['city'] = $m[2];
            return $addr;
        }
        return ;
    }

    //清除cookie
    foreach ($_COOKIE as $key => $val) {
        $_COOKIE[$key] = '';
    }

    //使用范例
    $address= get_city("183.37.209.57");  //202.96.154.8 深圳
    var_dump($address);




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。