IP アドレスによる php 都市測位
IP 都市測位 Sina インターフェイス:
/** * 新浪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");
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);