原始 geoip 数据从哪里来?

JBH*_*JBH 2 geolocation

这个问题是此处提出的更具体问题的一般版本。然而,这些答案并没有用。

问题:  geoIP 数据的原始来源是什么?

许多网站都会告诉我我的 IP 在哪里,但它们似乎都使用来自不到 5 个公司的数据库(大多数使用来自 MaxMind 的数据库)。这些公司提供有限的免费数据库版本,但我试图确定他们的源数据使用什么?

  • 我尝试过使用 Linux/Unix 命令,例如 ping、traceroute、dig、whois 等,但它们无法提供可预测的准确信息。

Ale*_*kiy 6

序言:我相信这对于 SO 网站来说实际上是一个非常有效的问题,因为了解这些东西如何工作对于理解如何在软件中使用这些数据集非常重要。然而,这个问题的答案相当复杂,并且充满了历史言论。

首先 - 值得一提的是,没有统一的原始 geoip 数据。这样的事情根本不存在。其次,相关数据来自多个资源,并且通常不可靠和/或过时。

要理解这是如何发生的,就需要知道互联网是如何产生并在世界范围内传播的。简短摘要如下:

  1. IANA 是一个全球性[非营利]组织,负责管理向区域组织分配 IP 块:https://www.iana.org/numbers这会根据请求发生,并且区域组织会请求指定的块大小
  2. 区域组织可以将这些 IP 块直接分配给 ISP 或国家级子组织(然后由谁将其分配给 ISP)。
  3. ISP 为本地分支机构等分配 IP 地址。

从上面你可以很容易地看出:

  1. 没有一个机构负责向这个或那个位置分配 IP 块
  2. 如何(以及是否)发布有关哪个 IP 属于哪个位置的信息的决定并不统一,而是由每个组织决定如何(以及是否这样做)发布该信息

所有这些都造成了很多混乱。获取、汇总和整理这些数据需要大量的奉献和长时间。这就是为什么大多数最新且详细的 geoip 数据集都是商业商品的原因

无论谁接受构建自己的数据集的挑战,都应该能够直接从最终用户 (ISP) 获取此信息,因为更高级别的组织不知道每个 IP 地址将分配到哪个位置。较高级别的组织仅distribute在申请人之间屏蔽 IP(并保留一些保留以加快处理速度),而最低级别的组织则决定哪个位置获得哪个 IP 地址,并且他们没有义务公开发布此信息。

UPD: 要开始构建您自己的数据集,您可以从此块列表以及它们的分配方式开始