-4

我想通过 IP 地址获取我当前(地区、区号或邮政编码、州、国家/地区)的位置。

我在代码下面得到 IP 地址。

$myip = $_SERVER['REMOTE_ADDR'];

output :- 122.161.20.5

我的代码:-

<?php
$ip_addr = '122.161.20.5';
$geoplugin = unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip_addr) );

if ( is_numeric($geoplugin['geoplugin_latitude']) && is_numeric($geoplugin['geoplugin_longitude']) ) {

$lat = $geoplugin['geoplugin_latitude'];
$long = $geoplugin['geoplugin_longitude'];
}
echo '<pre>';
print_r($geoplugin);
echo '<pre>';
?>

IP 地址上方提供新德里的位置,但这不是我当前的位置。

请帮我。

4

3 回答 3

2

GeoLocation 并不是万无一失的。大多数情况下,您最终会得到 ISP 的纬度/经度。

于 2013-05-31T11:19:00.263 回答
1

那不是你的错。看起来数据库中的 IP 信息不正确:http ://whatismyipaddress.com/ip/122.161.20.5

此类数据库(如 GeoIP)通常包含错误信息。

于 2013-05-31T11:18:52.523 回答
0

Maxmind Geo API提供免费试用版来定位IP,你可以试试,它很容易实现,也有轻量版。

http://www.maxmind.com/en/geolocation_landing

请检查此链接。

http://dev.maxmind.com/geoip/你可以在这里看到如何实现这个。

它很容易实现,如果不能满足您的需要,您可以购买整个数据库。

于 2013-05-31T11:40:11.543 回答