如何从IP地址找到位置?

问题描述:

当我在Google上搜索IP地址时,会返回许多结果,其中一些结果会告知不同城市该IP的位置。如何从IP地址找到位置?

如何从IP地址找到位置?

下面是在Ruby中的一个模块:http://www.chipstips.com/?p=524

注:这是可怕的不精确,并基于可能不准确的停留发布表。

不准确的原因之一是因为NAT后面的任何IP都会报告最外面的NAT网关的位置。所以它通常是在你的ISP甚至在外面的东西。

评论http://www.iplocation.net/ 其中列出了4个用于将IP映射到地理位置的地理定位提供程序。

该链接还链接到由James A. Muir编写的文档http://www.ccsl.carleton.ca/~jamuir/papers/TR-06-05.pdf,题为“Internet Geolocation and Evasion”。在文件中,Muir确定了9种方法及其局限性,以获取用户的地理定位数据。

为了公平起见,您必须考虑用户可能位于代理服务器之后。

通用术语是地理IP查找或地理IP。知道这一点的最好方法是拥有一个最新的IP地址相关数据库。

下载:

免费下载数据库(〜25MB)

http://dev.maxmind.com/geoip/legacy/geolite/

在线:

geobytes.com/IpLocator.htm?GetLocation

www.ipligence.com/geolocation

您得到不同结果的原因是存在不同的地理位置数据库。他们每个人都会返回不同的结果。事实上,对这些地理定位数据库的可靠性进行了研究(例如http://www.caida.org/publications/papers/2011/geocompare-tr/)。

以我的经验,这是一个相当可靠:

https://iplocation.tools

你应该比较多个数据库,并找出哪些是最有可能的位置自己。

IPInfoDB是一个工作和提供免费的RESTful API,包含Python,Ruby和PHP等多种语言的库。

www.ipinfodb.com/ip_location_api.php