繁体   English   中英

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

结果城市没有工作,非常感谢

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

例如,如果大型 ISP 收到一系列 IP 地址,那么这可能是公共知识。 但是,如果该 ISP 跨区域运营,那么一个客户今天可能会得到一个地址,而另一个完全不同城市的完全不同的客户可能会在明天得到它。 在任何时候都不知道这个 IP 分配给了谁。 ISP 运营所在的模糊地理区域是已知的,但目前在哪个特定城市中的哪个特定客户拥有所说的 IP 地址是未知的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM