如何通过PHP获取IP地址并查询其所在城市?
- 内容介绍
- 文章标签
- 相关推荐
本文共计235个文字,预计阅读时间需要1分钟。
获取IP地理位置,淘宝IP接口说明:新潮的接口,直接获取地址信息。淘宝接口需提供IP,获取信息更全面。
@Return: array
/** * 获取 IP 地理位置 * 淘宝IP接口 * 说明:新浪的接口,直接能获取到地址信息,淘宝的接口需要提供ip,不过获取的信息更全面 * @Return: array */ function getCity($ip = '') { if($ip == ''){ $url = "int.dpool.sina.com.cn/iplookup/iplookup.php?format=json"; $ip=json_decode(file_get_contents($url),true); $data = $ip; }else{ $url="ip.taobao.com/service/getIpInfo.php?ip=".$ip; $ip=json_decode(file_get_contents($url)); if((string)$ip->code=='1'){ return false; } $data = (array)$ip->data; } return $data; } /** * 根据腾讯IP分享计划的地址获取IP所在地,比较精确 * @param [type] $queryIP [description] * @return [type] [description] */ public function getCity_QQ($queryIP){ $url = 'ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP; $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("@(.*)@iU", $result, $ipArray); $loc = $ipArray[1]; return $loc; }
本文共计235个文字,预计阅读时间需要1分钟。
获取IP地理位置,淘宝IP接口说明:新潮的接口,直接获取地址信息。淘宝接口需提供IP,获取信息更全面。
@Return: array
/** * 获取 IP 地理位置 * 淘宝IP接口 * 说明:新浪的接口,直接能获取到地址信息,淘宝的接口需要提供ip,不过获取的信息更全面 * @Return: array */ function getCity($ip = '') { if($ip == ''){ $url = "int.dpool.sina.com.cn/iplookup/iplookup.php?format=json"; $ip=json_decode(file_get_contents($url),true); $data = $ip; }else{ $url="ip.taobao.com/service/getIpInfo.php?ip=".$ip; $ip=json_decode(file_get_contents($url)); if((string)$ip->code=='1'){ return false; } $data = (array)$ip->data; } return $data; } /** * 根据腾讯IP分享计划的地址获取IP所在地,比较精确 * @param [type] $queryIP [description] * @return [type] [description] */ public function getCity_QQ($queryIP){ $url = 'ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP; $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("@(.*)@iU", $result, $ipArray); $loc = $ipArray[1]; return $loc; }

