我不是在寻找可以做到这一点的服务。我只是好奇地理定位是如何工作的。
6 回答
将 IP 地址映射到地理位置是通过表格完成的,其中 IP 映射到特定位置。但是,此位置不需要准确,因为 IP 地址不携带有关其位置的任何信息,这些是近似的。
来自http://en.wikipedia.org/wiki/Geolocation_software:
IP 地址数据的主要来源是区域互联网注册机构,它们在位于各自服务区域的组织之间分配和分发 IP 地址:
- 美国互联网号码注册机构 (ARIN)
- RIPE 网络协调中心 (RIPE NCC)
- 亚太网络信息中心 (APNIC)
- 拉丁美洲和加勒比互联网地址注册 (LACNIC)
- 非洲网络信息中心 (AfriNIC)
次要来源包括:
- 数据挖掘或用户提交的地理位置数据。例如,天气网站可能会要求访问者提供城市名称以查找当地预报。另一个示例是将用户的 IP 地址与他/她的帐户配置文件中的地址信息配对。
- 互联网服务提供商提供的数据。
- 合并来自不同供应商的数据库。
- 来自相邻 C 类范围 [2] 和/或从网络跃点收集的猜测。
通过以下方式提高准确性:
- 数据清理以过滤或识别异常。
- 用户提交数据的统计分析。
据我了解,IP 子网被分配给您的服务提供商上游的提供商 - 因此每个 IP 范围都被标记为在该提供商的原产国之内,因此该范围内的每个 IP 都被假定在该国家/地区内。
这不是万无一失的——我们以前(在英国)由比利时供应商向我们提供卫星宽带。每次我们用谷歌搜索任何内容时,我们都会被告知只能查看比利时境内的网页。
有许多组织管理 IP 地址的分配,例如美国互联网号码注册机构 (ARIN)。这些组织维护已分配 IP 地址块及其分配位置的主列表,并经常发布更新的列表。
地理定位软件充分利用了这些列表,并提供了将 IP 地址映射到国家/地区的快速方法。一般来说,商业产品会争取更高的准确性并利用其他数据源。
查看 wikipedia 上的Geolocation Software文章,了解有关该主题的一些有趣链接。
在互联网基础设施中有一种叫做自治系统的东西,定义在这里
每个提供者都被分配了其中至少一个。一个 AS 有一个唯一的 ASN(自治系统编号),在该 AS 内可以有网络(WAN 和 LAN)。
这些被分配给提供商,他们当然有一个位置,所以路由协议通过 ASN 知道他们在哪个区域。
使用 WHOIS 服务可以确定 IP 地址属于谁,因为我们大多数人在上网时都由我们的提供商分配了一个 IP 地址,在 WHOIS 上,您大多会找到您所在的提供商所在的城镇。但 WHOIS 是网站,您会找到它的所有者,因此 Geolocation 经常使用该服务。
要快速开始地理定位,请打开命令行并输入tracert stackoverflow.com
并密切关注结果。大多数情况下,前几行已经给出了有关您所在位置的重要提示。
基本上他们根据IP地址猜测。他们在某个地方有一个 IP 地址范围和位置的列表。他们根据对 whois、traceroute 和/或用户反馈的查找来维护这些信息。
例如,MaxMind 似乎主要依靠用户反馈来保持其列表最新。
人们使用 VPN 和代理来绕过 IP 基础地理封锁。有时表格只是有错误的数据。
如果您想要 somtjhing,它既便宜又有效,而且不担心疏远您的用户;这是一个很好的解决方案。不要期望超过 99% 的结果在实际用户位置的 2000 英里范围内。