从IP地址获取城市

时间:2015-09-16 09:20:30

标签: php html

我想从他们的IP地址检索访问者的城市,州和国家等信息,以便我可以根据他们的位置自定义我的网页。有没有一种好的,可靠的方法在PHP中执行此操作? 没有java脚本我正在使用此代码,但结果为null

$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>";

结果让这个城市无法工作多少谢谢

1 个答案:

答案 0 :(得分:0)

IP地理定位通过累积将IP映射到地理位置的数据库来工作。这些数据的来源是多种多样的,通常是公共IP分配记录的累积。作为一个背景,有些机构负责管理IP地址的分配。有一个全球机构为较小的区域机构分配IP地址范围,这些机构进一步将这些IP地址传递给更多本地组织,如ISP或托管公司,最终将它们发送给客户。

如果大型ISP收到一系列IP地址,那么这可能是公共知识。但是,如果这个ISP跨区域运营,那么一个客户今天可能会获得一个地址,而一个完全不同的城市中的完全不同的客户可能会在明天获得它。 根本不知道这个IP在任何时候都被分配给谁。 ISP操作的模糊地理区域是已知的,但特定城市当前具有IP地址的特定客户不是。