(我开始这个问答是为了帮助https://security.stackexchange.com/questions/242826/why-is-an-ip-address-in-a-different-city上的错误发布)
我个人住在我州首府以外的一个小城市。每当我查找我的 IP 地址然后进行 GeoIP 查找时,它都会响应我所在州的首府城市,而不是我居住的城市。这是为什么呢?
(我开始这个问答是为了帮助https://security.stackexchange.com/questions/242826/why-is-an-ip-address-in-a-different-city上的错误发布)
我个人住在我州首府以外的一个小城市。每当我查找我的 IP 地址然后进行 GeoIP 查找时,它都会响应我所在州的首府城市,而不是我居住的城市。这是为什么呢?
导致 GeoIP 映射精度降低的主要原因有 4 个。
1. GeoIP 数据库维护
IP 地址块基本上是由拥有总部的互联网服务提供商 (ISP) 购买的。最基本的结论是,其中一个 IP 地址上的客户与总部位于同一城市。但实际上,ISP 将是一个全国性的组织。
2.您的 ISP 路由
ISP 可以将他们的 IP 地址保留分成更小的块,分配给全国各地的小城镇。拥有充足 IP 地址的 ISP 可能会这样做。但是更多的没有多余的 IPv4 地址——没有足够的。
3. IP地址耗尽
如果一个有 100 人的城镇被分配了 50 个 IP 地址块,并且只使用了 1 个;另一个城镇可能有 50 个人,分配了 20 个 IP 地址,但他们需要 40 个。分配这种稀缺资源是浪费时间。通过为更大的区域设置一个 IP 地址池,该 IP 地址池将得到更好的利用。但这还不是最糟糕的部分——许多 ISP 完全用完了 IP 地址。
4. NATing
移动/手机网络必须应对互联网连接设备的大量增长;大多数人根本没有足够的资源为每部电话提供自己的 IPv4 地址。网络地址转换 (NAT) 是一种解决方法,它允许多个设备共享一个公共 IPv4 地址(或它们的一个池)。这意味着单个 IP 地址可以在同一小时内被州/国家任何地方的任何移动设备使用。如果单 IP 地址与一个地方的一台设备的关联性不强,则它不能用于精细的 GeoIP 分辨率。
IPv6 的未来
当您的 ISP 允许您使用 IPv6 时,上述原因较少适用。您更有可能为自己(和其他人)获得更准确的 GeoIP。但是 [2] 仍然很重要 - 您的 ISP 将需要分解他们的 IPv6 分配并更新 GeoIP 数据库。他们可能会为客户提供静态 IP 地址,并指定确切的地址,但您可能不希望他们这样做。