28

哪些 IP 分配给哪些 ISP 公开信息?地理 IP 服务如何获取这些信息并维护这些信息?

在不使用这些服务之一的情况下,我如何亲自找出某个 IP 所属的位置?

4

5 回答 5

48

值得一提的是,我在 ISP 行业的高级职位工作了十多年,所以我在这方面有相当多的经验。

IANA会根据需要将大型 IP 范围分配给每个地区互联网注册管理机构

这些区域的大小通常是大陆性的 - IP 地址 不是按国家/地区分配的。

然后,RIR 将 IP 地址分配给 ISP,ISP 又将它们分配给最终用户。

每个 RIR 都维护一个whois服务器,可以查询该服务器不仅可以查明哪个 ISP 已分配了任何网络块,还可以在一定程度上查明哪个最终用户以及该最终用户的地址。

请注意,许多 ISP 不会为每个客户填写此信息。因此,如果您是 DSL 服务的住宅用户,地理记录可能会提供您的 ISP 的地址,而不是您自己的地址。

各种 GeoLocation 提供商主要通过挖掘这些whois记录来工作。请注意,这样做的合法性是一个灰色地带 - RIPE 的数据库版权声明在这里

IANA 还维护 DNS 的根区域,但它与任何 IP 分配功能完全分开。保持域名操作和IP地址之间的区别非常重要。

于 2008-11-10T10:25:45.233 回答
5

有多种库具有映射表以及可以合并到代码中的服务。

要了解的最重要的事情是,IP 地址与世界任何地方之间没有直接关系。这些地址以大块的形式分配给大致地理上的组织,这些组织又分配较小的块,对于任何给定的 IP 地址,这可能发生在多个级别(Alnitak 很好地解释了该过程)。

事实是:WHOIS 数据不一定要准确。如果我有一个地址块,我可以说它在火星上。即使您缩小最终组织的位置(比如阿拉斯加的一个非常小的 ISP),用户也可能使用来自夏威夷的拨号,或者服务器可能托管来自关岛的公司。

因此,在将 IP 地址(或域名)映射到物理位置时,总是存在风险/估计因素。这并不是说您永远不应该这样做,在许多应用程序中,粗糙或不完善的信息非常有用。

于 2008-12-05T00:03:36.220 回答
5

回答关于“它是如何工作的”的具体问题:涉及大量体力劳动,并且数据库在很大程度上是手动维护的。正如其他答案所指出的那样,IP范围和国家之间没有真正的相关性,更不用说特定地区了。最近,IP 地址空间分配系统更加分散,这意味着小型私人供应商可以获取 IPv4 地址范围,而不受地理区域的影响。这就是谷歌收购 Urchin 的原因,以便他们可以将他们的服务用于谷歌分析,该分析提供非常准确的 IP 到地理区域的信息。

如果您不想使用MaxMind(个人免费使用,并且数据库在一定程度上是开放的)或Google Analytics(个人免费使用)之类的服务,则有免费的(因此总是有些过时的)数据库在四处游荡,有时作为平面文件。

于 2009-03-11T21:18:39.793 回答
2

请注意,数据的更新速度通常很慢,复制速度甚至更慢。几年前,我的工作地点改变了 ISP,我们被分配了一组以前的加拿大 IP 地址(我们位于美国),几个月来,谷歌继续将 google.ca 作为我们的默认搜索引擎。大约 1/2 的时间我的家庭 IP 地址来自我的城镇,另外 1/2 来自另一个州的城镇。

Jason 说得对,流程相同,但更新速度更慢,数据更不准确。

于 2008-11-08T03:59:28.460 回答
1

Alnitak 的回答非常符合要求。

作为旁注,如果您想使用 .dll 来确定用户的位置,那么您可以尝试在CodePlex上找到的这个IPAddressExtension。它有一个 ISP 到位置的内部数据库。正如 Alnitak 上面提到的,每个 ISP 都有 IP 块 .. 所以这些信息都隐藏在 .dll 中:)

它真的很容易使用。只需引用 .dll,然后创建System.Net.IpAddress对象的实例!扩展名列在上面。

我还需要声明我是那个 codeplex 项目/产品的作者。

请检查一下 :)

编辑:添加了有关我是该产品作者的信息。

于 2008-12-05T00:08:07.680 回答