如何从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/)。
以我的经验,这是一个相当可靠:
你应该比较多个数据库,并找出哪些是最有可能的位置自己。