IP的地理查询如何运作?

时间:2008-11-08 03:35:26

标签: dns ip ip-geolocation

哪些IP被分配给哪些ISP的公共信息?地理IP服务如何获取此信息并维护此信息?

如果不使用其中一种服务,我如何亲自找出某个IP所属的位置?

5 个答案:

答案 0 :(得分:43)

为了它的价值,我在ISP行业的高层工作了十多年,所以我对此有很多经验。

IANA根据需要为Regional Internet Registries中的每一个分配大型IP范围。

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

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

每个RIR都维护一个whois服务器,可以查询该服务器,不仅可以找出哪个ISP被分配了任何网络块,而且在某种程度上找到了哪个最终用户以及该最终用户的地址。 / p>

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

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

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

答案 1 :(得分:5)

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

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

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

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

答案 2 :(得分:4)

回答有关“工作原理”的具体问题:涉及很多手工劳动,数据库在很大程度上是手动维护的。正如其他答案所指出的那样,IP范围和国家之间没有真正的相关性,更不用说具体区域了。最近,IP地址空间分配系统更加分散,这意味着小型私有供应商无论地理区域如何都可以获得IPv4地址范围。这就是为什么Google收购了Urchin,以便他们可以将自己的服务用于Google Analytics,后者可以提供非常准确的IP到地理区域信息。

如果您不想使用像MaxMind这样的服务(免费供个人使用,数据库在某种程度上开放)或Google Analytics(免费供个人使用),则免费(并且因此总是略微过时的数据库浮动,有时作为平面文件。

答案 3 :(得分:2)

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

杰森说这个过程是一样的,但更新速度更慢,数据准确性也不够准确。

答案 4 :(得分:1)

Alnitak的回答非常重要。

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

它非常易于使用。只需引用.dll然后创建一个System.Net.IpAddress对象的实例!扩展名列在其上。

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

请查看:)

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