一、PHP利用腾讯IP分享计划获取IP地理位置
/**
* 获取ip地址的地理位置
* @param type $ip ip地址
* @return type string
*/
public static function getIPLocation($ip) {
$url = 'http://ip.qq.com/cgi-bin/searchip?searchip1=' . $ip;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_ENCODING, 'gb2312');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回
$result = curl_exec($ch);
$result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码
curl_close($ch);
preg_match("@<span>(.*)</span></p>@iU", $result, $ipArray);
$loc = $ipArray[1];
return $loc;
}
二、PHP利用新浪IP查询接口获取IP地理位置
/**
* 获取ip地址的地理位置
* @param type $ip ip地址
* @return string
*/
public static function getIPLocation($ip) {
$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=' . $ip;
$ch = curl_init($url);
//curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回
$location = curl_exec($ch);
$location = json_decode($location);
curl_close($ch);
$loc = "";
if ($location === FALSE)
return "";
if (emptyempty($location->desc)) {
$loc = $location->province . $location->city . $location->district . $location->isp;
} else {
$loc = $location->desc;
}
return $loc;
}