(我开始这个问答是为了帮助https://security.stackexchange.com/questions/242826/why-is-an-ip-address-in-a-different-city)
我个人住在我所在州首府外的一个小城市。每当我查找我的 IP 地址然后进行 GeoIP 查找时,它都会返回我所在州的首府,而不是我居住的城市。这是为什么?
答案1
导致 GeoIP 映射不太准确的主要原因有 4 个。
1. GeoIP 数据库维护
IP 地址块基本上是由拥有总部的互联网服务提供商 (ISP) 购买的。最基本的结论是,其中一个 IP 地址上的客户与总部位于同一城市。但实际上,ISP 将是一个全国性的组织。
2. 您的 ISP 路由
ISP 可以将其 IP 地址预留分成更小的块,分配给全国较小的城市和乡镇。拥有充足 IP 地址的 ISP 可能会这样做。但更多的 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 地址,并指定一个确切的地址,但您可能不希望他们这样做。