什么是 GeoIP
GeoIP 是通过 IP 地址估算国家、地区、城市等大致地理位置的技术的统称。其原理是将 IP 地址的分配记录与 ISP 接入点的位置信息进行比对来推算位置:国家级判定几乎总是准确,城市级精度只有 50-80% 左右,而门牌号和个人住址则无法确定。它被网站广泛用于确定访问者的国家或地区,并据此定制内容。想快速了解这一术语的要点,可参阅术语表中的 GeoIP 条目。
IP 确认酱首页显示的国家、地区、城市、ISP 和 AS 号码都是通过 GeoIP 数据库获取的。只需访问 IP 确认酱,您就可以立即看到您的 IP 地址关联的国家和地区,以及您通过哪个 ISP 连接。
其基本原理很简单。互联网上的 IP 地址由区域互联网注册机构 (RIR) 分配给 ISP 和组织。通过将这些分配数据与 ISP 连接点的物理位置进行交叉引用,可以从 IP 地址估算出大致的地理位置。不过,这种机制有其固有的局限性,重要的是要理解"IP 地址"并不等于"精确的街道地址"。
GeoIP 数据库的工作原理
GeoIP 数据库本质上是一个将 IP 地址范围映射到地理信息的查找表。它由以下数据源构建:
- RIR(区域互联网注册机构)的 IP 地址分配记录:由五个 RIR 管理,ARIN(北美)、RIPE NCC(欧洲)、APNIC(亚太)、LACNIC(拉丁美洲)和 AFRINIC(非洲)
- ISP 和数据中心的位置数据
- BGP(边界网关协议)路由信息:显示 IP 地址块经过哪些网络路径的数据
- 用户反馈和纠正报告
容易与 GeoIP 混淆的,是智能手机地图应用等所使用的基于 Wi-Fi 接入点和移动基站的定位。那是另一套机制:由终端自身观测周围的无线电信号来推算所在位置,GeoIP 数据库并不持有这些观测结果。GeoIP 处理的是 IP 地址的分配信息与路由信息,而不是终端实测得到的位置。
MaxMind GeoLite2 的工作方式
IP 确认酱使用 MaxMind GeoLite2 数据库。MaxMind 是领先的 GeoIP 数据库提供商,提供免费的 GeoLite2 和付费的 GeoIP2。GeoLite2 之中,城市与国家数据库每周更新两次(周二和周五),AS 号码数据库则在工作日每天更新(截至 2026 年 8 月),IP 地址的重新分配和 ISP 变更由此得到反映。
GeoLite2 数据库为每个 IP 地址 CIDR 块(例如 203.0.113.0/24)存储位置信息。查询时,系统识别包含目标 IP 地址的 CIDR 块并返回与该块关联的位置数据。由于这种设计,同一 CIDR 块内的所有 IP 地址返回相同的位置信息。
其他主要提供商
- IP2Location:提供免费版和商用版。其数据库除位置信息外,还包含 ISP、连接类型等属性
- DB-IP:提供免费和付费两种层级的 GeoIP 服务,采用自有的数据收集方法
- ipinfo.io:除发布数据库外,主要通过 API 提供查询的 GeoIP 服务
随着 IPv6 的日益普及,GeoIP 数据库一直在扩展其 IPv6 覆盖范围。然而,由于 IPv6 地址分配结构与 IPv4 不同,IPv6 的位置精度往往更加不稳定。ISP 批量获取大量 IPv6 地址块,使得在这些块内进行细粒度的区域分类更加困难。
GeoIP 的精度与局限性
GeoIP 的精度因粒度级别而有很大差异。"GeoIP 可以精确定位您的地址"是一个常见的误解,实际上,它只能指示 ISP 的连接点或区域的中心。它与具备米级精度的GPS 的工作原理属于根本不同的技术。
| 判定粒度 | 精度参考值 | 产生偏差的主要原因 | 该粒度能说明什么 |
|---|---|---|---|
| 国家 | 实用上几乎可以确定(但无法保证 100 %) | 国境附近的 ISP 使用了分配给邻国的 IP 地址块 | 几乎可以确定连接来自哪个国家 |
| 地区与城市 | 波动远大于国家级(可能有数十公里误差) | 大型 ISP 统一管理覆盖广域的地址块,并将登记地设为总部所在地 | 只能缩小到大致区域,城市名未必与实际一致 |
| 门牌地址 | 无法判定 | 返回的只是 ISP 的接入据点或区域中心点 | 无法得知个人的住址与姓名 |
国家级精度
国家级判定在实用上几乎可以确定,绝大多数 IP 地址都会返回正确的国家。不过 MaxMind 说明,位置信息的精度无法保证 100 %,精度会因国家、距离、线路种类(移动还是宽带、IPv4 还是 IPv6)以及 ISP 的运营方针而大幅波动(截至 2026 年 8 月)。实际上,当国境附近的 ISP 使用分配给邻国的 IP 地址块时,就会出现误判。
地区和城市级精度
城市级精度比国家级大幅下降,可能存在数十公里的误差。这种波动源于 ISP 分配 IP 地址的方式。大型 ISP 统一管理覆盖广大区域的 IP 地址块,因此实际用户位置和 ISP 的登记据点可能相距很远。
例如,如果住在农村地区的用户使用总部位于大城市的 ISP,GeoIP 可能会将其位置识别为该大城市。这是因为 ISP 将 IP 地址块的位置注册为其总部地址。
精度降低的常见情况
- 移动网络:移动运营商使用覆盖广大区域的 IP 地址块,因此通常返回运营商的注册位置而非基站位置。与固定线路连接相比,城市级精度显著下降
- 通过 VPN 或代理:显示 VPN 服务器的位置,产生与用户实际位置无关的结果。VPN 连接期间的 GeoIP 结果反映所连接服务器的国家和城市
- CGNAT(运营商级 NAT)环境:ISP 让多个用户共享一个全局 IP 地址的设置。在 CGNAT 下,大量用户共享同一 IP,因此位置信息被聚合到 ISP 的代表位置。其采用以移动网络为主不断扩大,固定线路也在使用
- 企业网络:使用总部的 IP 地址,可能与分支机构或远程工作者的实际位置不同
- 卫星互联网(如 Starlink):可能被分配到与使用地点相距较远的 IP 地址。由于返回的是与地面站或运营商据点关联的位置,可能与实际所在地相差很大
- 通过云服务:使用 AWS 或 Google Cloud 区域的 IP 地址,因此返回服务器的物理位置
数据库更新周期与精度的关系
GeoIP 的精度也受数据库更新周期的影响。GeoLite2 的城市与国家数据库每周更新两次,AS 号码数据库在工作日每天更新(截至 2026 年 8 月),ISP 的重新分配和新地址块的投入都按这一周期得到反映。反过来说,在两次更新之间分配发生变更的 IP 地址,会一直返回旧的位置信息,直到下一次更新为止。当 GeoIP 的结果与实际情况不符时,原因有时正是在等待数据库反映。
GeoIP 的应用场景
内容本地化
GeoIP 用于根据访问者的国家自动切换语言和货币。例如,电商网站可能为来自日本的访问者提供日语和日元定价,为来自美国的访问者提供英语和美元定价。
地区限制:地理封锁
视频流媒体服务等平台使用 GeoIP 因许可协议仅允许特定国家访问。Netflix 和 Amazon Prime Video 按国家提供不同内容库是基于 GeoIP 地理封锁的典型例子。
欺诈检测与安全
GeoIP 用于检测来自异常国家的登录并标记潜在的未授权访问。网上银行和电商网站通常要求对来自陌生位置的访问进行额外身份验证。它还与防火墙结合使用,完全阻止来自特定国家的访问。
广告定向
GeoIP 用于显示特定地区的广告。对于本地化业务,基于 GeoIP 的广告投放是一种经济高效的方法。
法规合规
GeoIP 用于根据特定国家的法律限制服务可用性(例如在线赌博法规、数据保护法下的数据处理限制)。
GeoIP 与隐私
基于 GeoIP 的位置估算引发了隐私担忧:
- 仅凭 IP 地址就可以估算出大致的居住区域
- ISP 信息揭示了正在使用哪个互联网服务
- AS 号码可能允许推断用户所属的组织
然而,GeoIP 无法确定个人的确切家庭住址或姓名。MaxMind 自己也明确表示,GeoIP 的位置数据从来都不够精确,无法识别或定位具体的住户、个人或门牌地址(截至 2026 年 8 月)。返回的信息仍停留在"大致区域"级别,"GeoIP 会暴露我的家庭住址"这种担忧在技术上是没有根据的误解。
在 GDPR(欧盟通用数据保护条例)和日本的个人信息保护法下,IP 地址可能被视为个人数据或等同物。在各国的隐私法规之下,处理 GeoIP 数据也需要谨慎。网站运营者应建立关于 GeoIP 数据收集和使用的适当隐私政策。
GeoIP 误判也可能导致实际问题。例如,如果您实际在日本但被识别为在海外,您可能无法观看流媒体服务上的内容,或可能触发网上银行的安全警报。在这种情况下,您可以联系 ISP 或通过 MaxMind 的 GeoIP 位置纠正表单提交更正。
IP 确认酱上可查看的 GeoIP 信息
IP 确认酱首页实时显示与您的 IP 地址关联的以下 GeoIP 信息:
- 国家名称和国旗:您的 IP 地址所分配的国家
- 地区和城市:基于 ISP 连接点的区域信息
- ISP 名称:您的互联网服务提供商
- AS 号码:您的自治系统的标识号
- 经纬度:估算坐标(在地图上显示)
实际应用示例
- 验证连接 VPN 时 GeoIP 结果是否变为 VPN 服务器所在国家
- 确认您的 ISP 信息是否正确显示
- 检查显示的城市与您的实际位置有多接近,亲身体验 GeoIP 的精度
- 结合 DNS 泄漏测试,全面验证 VPN 的匿名性是否得到维护
如何隐藏您的位置
以下方法可以帮助您避免基于 GeoIP 的位置估算:
- 使用 VPN:显示 VPN 服务器的位置,隐藏您的实际位置。但如果发生 DNS 泄漏,即使使用 VPN,您的真实位置仍可能暴露
- 使用 Tor 浏览器:显示出口节点的位置。代价是连接速度会显著降低
- 通过代理服务器路由:显示代理的位置。但流量可能未加密
连接 VPN 时,GeoIP 结果会变为反映 VPN 服务器所在国家。例如,从日本连接到美国的 VPN 服务器,多数情况下 GeoIP 会判定为美国。由于判定结果取决于 VPN 运营商把该 IP 地址登记在何处,显示的国家与服务器实际所在的国家也可能并不一致。此外,即使使用 VPN,在以下情况下您的实际位置仍可能暴露:
- DNS 泄漏:DNS 查询在 VPN 隧道外发送,您的实际 IP 地址被 ISP 的 DNS 服务器记录
- WebRTC 泄漏:浏览器的 WebRTC 功能暴露您的本地 IP 地址
- VPN 连接中断:当 VPN 连接暂时中断时,通信使用您的真实 IP 地址进行
请在 IP 确认酱上查看您的 IP 地址和位置,验证连接 VPN 时您的位置是否被正确隐藏。
常见问题
GeoIP 的定位有多准?
国家级判定在实用上几乎可以确定,但城市级精度波动很大。与实际位置相差几十公里并不少见。显示的常常是 ISP 的接入据点,无法确定用户的准确住址。
用 VPN 后 GeoIP 显示的位置会变吗?
会。GeoIP 显示的不是您的实际位置,而是分配给 VPN 服务器的那个 IP 地址的登记地。利用这一点,可以访问有地区限制的内容,或保护隐私。不过显示的国家未必与服务器实际所在的国家一致。
什么是 GeoIP 数据库?
它是 IP 地址段与地理信息的对照表,基于区域互联网注册机构 (RIR) 的分配信息和 ISP 的节点信息等构建,像 MaxMind GeoLite2 这类定期更新的数据库被广泛使用。同一 CIDR 段内的 IP 地址会返回相同的位置信息。
您现在可以采取的行动
阅读本文后,请尝试以下步骤:
- 访问 IP 确认酱首页,查看您的 GeoIP 信息(国家、地区、城市、ISP)
- 将显示的城市名称与您的实际位置进行比较,亲身体验 GeoIP 的精度
- 如果使用 VPN,比较有无 VPN 连接时的 GeoIP 结果
- 比较移动网络和 Wi-Fi 连接的 GeoIP 结果,观察不同连接类型的精度差异
- 如果 GeoIP 结果与实际情况差异很大,通过 MaxMind 的纠正表单提交更正