从IP地址获取城市信息


Getting the city from an IP address

我想从一个访问者的IP地址中检索他们的城市、州和国家等信息,这样我就可以根据他们的位置定制我的网页。在PHP中是否有好的可靠的方法来做到这一点?没有Java脚本,我使用这个代码,但结果是空的城市

$user_ip = getenv('REMOTE_ADDR');
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$city = $geo["geoplugin_city"];
$region = $geo["geoplugin_regionName"];
$country = $geo["geoplugin_countryName"];
echo "City: ".$city."<br>";
echo "Region: ".$region."<br>";
echo "Country: ".$country."<br>";

result for the city not work many thanks

geoocation -by- ip通过积累一个将ip映射到地理位置的数据库来工作。这些数据的来源多种多样,通常是公共IP分配记录的积累。作为一点背景知识,有一些机构负责管理IP地址的分配。有一个全球性的机构将IP地址范围分配给较小的区域机构,这些机构进一步将这些IP地址传递给更多的本地组织,如互联网服务提供商或托管公司,最终分发给他们的客户。

如果一个大的ISP,比如说,接收到一系列的IP地址,那么这可能是公共知识。然而,如果这个ISP是跨地区运营的,那么一个客户今天可能得到一个地址,而另一个完全不同城市的完全不同的客户明天可能得到这个地址。在任何时候都不知道这个IP分配给了谁。 ISP运营的模糊地理区域是已知的,但具体哪个城市的具体客户目前使用的IP地址是未知的。