我只是想知道 GeoIP 服务除了检查 IP 地址 WHOIS 信息之外,还如何收集有关 IP 地理位置的数据。例如,我偶然发现了这个网站,上面说 IP 74.207.244.221 位于加利福尼亚州弗里蒙特:https://ipinfo.io/74.207.244.221
但是我无法找到此 IP whois 信息。ipinfo.io 指出:
最初我们的 API 使用 MaxMind 数据,但我们一直忙于创建自己的地理位置数据。我们取得了很大进展,现在我们使用自己的数据来处理大约一半的请求。不过我们仍然会回退到 MaxMind 数据
这引起了我的兴趣,ipinfo.io 和 MaxMind 等服务如何收集 GeoIP 数据?
答案1
此类服务通常使用三种方式来定位 IP 地址:
- 经历谁是用于搜索地址的数据库;
- 跟踪反向 DNS 查询以尝试根据域名记录找到线索或跟踪发送到目的地的数据包的路径,这也可以提供线索(例如,使用 traceroute)。
- 最后,他们使用 RTT 三角测量。
往返时间 (RTT) 三角测量是一种通过测量从三个不同位置的 ping 延迟来获取 IP 地址大致地理位置的方法。
例如,如果您有三台服务器以三角形分布在全球各地,并且您从这三台服务器 ping 一个 IP 地址,并且得到的延迟结果相同,则意味着该 IP 地址正好位于该三角形的中心。这是三角测量的工作原理,但在这种情况下,它与 ICMP ping 一起使用。
您可以阅读的资源:
什么是 ping?@ 维基百科
SIGCOMM 关于 RTT 三角测量的论文
答案2
我是IP信息,所以我绝对可以提供一些细节!我们没有使用单一方法或单一数据源来生成我们自己的地理位置数据库(或我们的任何其他数据集,如 IP 到公司或 IP 到运营商)。它是一系列不同数据集、数据处理技术和多年来从中吸取的经验教训的混合体!
一些不常提及的数据来源和技术包括:
来自 ISP 的直接反馈。我们的服务每天处理大约 5 亿个 API 请求,并且已在许多热门高知名度网站上使用。因此,ISP 有动力向我们提供准确的最新地理位置数据,以便他们的客户在网络上获得良好的体验。我们一直在与越来越多的 ISP 直接合作。
GPS 位置数据。可以使用移动设备上的 GPS 收集精确的位置信息。您可以将其与 IP 地址和一些网络拓扑推断配对,只需进行几次测量即可计算出 IP 范围的位置。
用户提交了更正。当我们的位置确实错误时(或者在更改后没有更新),我们通常会快速收到用户的反馈,并且可以手动修复位置,或者调整我们的算法以确保在数据处理管道的下一次运行中正确定位。
对于我们的 IP 到公司数据集,我们实际上每个月都会抓取每个域名,并将我们从中提取的数据与 IP 所有权信息、rwhois 记录等进行交叉引用。然后,我们还使用域名抓取数据显示哪些域名托管在哪些 IP 地址上,并在我们的 IP 类型分类器中以及许多其他数据源中确定 IP 地址主要用作住宅 ISP、企业或托管提供商的概率。我们还分析这些页面的链接结构,并在host.io。