本文主要是介绍PHP获取IP地址所在的地理位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、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;}
这篇关于PHP获取IP地址所在的地理位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!