geolocation - 原始 geoip 数据从何而来?

标签 geolocation

这个问题是一个更具体问题的一般版本 asked here .但是,这些答案无法使用。

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

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

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

最佳答案

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

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

要了解它是如何形成的,就需要知道互联网是如何诞生并在世界范围内传播的。简短摘要如下:

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

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

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

以上所有造成了一大堆困惑。获取、聚合和排序这些数据需要大量的投入和长时间。这就是为什么最新和详细的 geoip 数据集是 commercial commodity .

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

更新: 要开始构建您自己的数据集,您可以从 this list of blocks and how they are assigned 开始。

关于geolocation - 原始 geoip 数据从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47186210/

相关文章:

java - 通过邮政编码查找位置

ios - navigator.geolocation.watchPosition 在 iOS 设备上无法正常工作

google-maps - Flutter - 拖动标记并获得新位置

javascript - HTML5 地理定位不会在 Safari 浏览器上提示输入位置

android - 使用纬度和经度获取特定地址

python - 用于在世界地图上绘制纬度/经度对的易于使用的 API 是什么?

android - React native for Android 导航器地理定位未运行

android - getLastKnownLocation 返回 Null 值

javascript - W3C 地理定位 API 在 Chrome 中不起作用

android - 使用 phonegap 打开 Android 位置设置