IP 定位不准的原因:为什么 11 个 IP 库给出不同位置

博客 / IP 与隐私

IP 定位不准的原因:为什么 11 个 IP 库给出不同位置

IP 定位不准是常态。IP 地址本身不带坐标,所有“归属地”都是数据库根据注册信息、路由和测量推断出来的,各家数据来源和更新节奏不同,结果自然有出入。国家级通常比较一致,城市级落到邻近城市、甚至落到另一个省都不少见。判断哪个结果更可信,要看多家是否一致,以及注册信息和网络类型能不能对上,而不是只信某一家。

下文依次讲数据来源、分歧原因、自查步骤,最后说明 cdnping IP 与环境检测 页面上“11 个地理库投票”和置信度怎么读。

IP 地址本身包含位置信息吗?

不包含。IPv4 地址是 32 位的数字,IPv6 是 128 位,协议里没有任何字段写着“这个地址在上海”。

地址是逐级分配的:IANA 把大块地址分给五个区域互联网注册管理机构(RIR,亚太地区是 APNIC),RIR 再分给运营商、云厂商或企业,运营商再分到具体的城域网、机房或家庭宽带。只有最后一层的使用者知道地址实际在哪里用,而这一层通常不公开。

所以 IP 地理库做的是用公开线索拼出最可能的位置。线索不同、拼法不同,答案就不同。

IP 地理库的数据从哪里来?

常见来源大致有四类,各家的组合和权重不一样。

1. 注册信息(RIR / WHOIS / RDAP)

RIR 数据库记录了每个网段分给了谁,带有组织名称、国家代码,有时还有地址。国家级判断大多以它为起点。

问题在于,注册信息写的是持有者的登记地,不一定是使用地。总部在 A 国的云厂商,可以把同一个注册段拿到 B 国的机房去用;全国性运营商的网段,登记地址可能就是总部所在城市。

2. 路由数据(BGP 与 ASN)

从 BGP 路由表可以看到某个网段由哪个自治系统(ASN)宣告、在哪些位置宣告。ASN 的归属能帮助区分机房、家宽和移动网络,宣告位置能提供地理线索。

但同一个网段可以在多个地方同时宣告(Anycast),也可以随时迁移。路由只说明流量从哪里进出,不等于用户在哪里。

3. 主动测量(延迟与路由跟踪)

有的数据库会从分布在各地的探针向目标 IP 发包,测往返延迟,再用光在光纤中传播速度的上限反推距离范围。多个探针的结果交叉,可以圈出一个大致区域。

这种方法擅长判断“这个 IP 不可能在某地”,对具体城市只能给出范围。目标不响应 ping、链路绕路、中间有隧道,都会让结果偏移。

4. 运营商自报与用户反馈

部分网络运营者会发布 geofeed(RFC 8805 定义的 CSV 格式),声明自己每个网段在哪个国家和城市使用。有的数据库采纳,有的不采纳,采纳的时间也不同。

另一类来源是用户纠错和应用侧数据,例如有人提交“这个 IP 实际在某城市”。这类数据有时很准,有时只代表某个时间点。

为什么不同 IP 库给出的位置不一样?

把四类来源放在一起看,分歧主要来自下面几种情况:

分歧原因典型表现判断方法
注册地与使用地不同有的库显示总部城市,有的显示机房城市查 RDAP,看注册组织和国家
更新滞后网段刚换了用途或地区,部分库还是旧位置看多数库是否已经改口
广播 IP(注册在 A 地、在 B 地使用)国家都不一致,一部分说 A 国,一部分说 B 国对比注册国家和多数库给出的使用国家
Anycast各库给出互不相关的城市看 ASN 是否属于 CDN 或 DNS 服务商
城市级靠推断国家、省份一致,城市各说各话只信到省一级
移动网络与 CGNAT定位落在运营商网关所在城市看 IP 类型是否为移动
数据库默认值只能判断到国家时,填国家中心点或首都坐标落在国家几何中心附近时要警惕

更新滞后最容易被忽略。很多 IP 地理库按固定周期发布新版本,网站接入后还可能缓存一段时间。一个网段从 A 地机房迁到 B 地,各库陆续更新,中间会有一段各家说法不一的过渡期。

广播 IP 和原生 IP 的区别也和地理库直接相关:广播 IP 注册在一个国家、宣告到另一个国家使用,地理库最容易在这里分成两派。概念细节见 原生 IP 和广播 IP 的区别。

城市级定位能准到什么程度?

各数据库对自己精度的说法不同,也没有统一的公开基准,这里不给具体百分比。按层级看,大致是这样:

  • 国家级:多数情况下各库一致,分歧集中在广播 IP、Anycast 和刚迁移的网段。
  • 省份 / 州级:家宽和移动网络一般能对上,机房 IP 取决于机房登记是否准确。
  • 城市级:本质上是推断。家宽 IP 往往定位到运营商汇聚节点所在的城市,而不是你家所在的区县;移动网络更粗,可能整个省都落到同一个城市。
  • 经纬度坐标:很多查询结果给出小数点后好几位的坐标,这不代表精度。它通常是城市中心点或数据库内部的默认点,附带的“精度半径”比坐标本身更值得看。

如果某个网站显示你的 IP 在隔壁城市,多数情况下不是出了故障,城市级定位本来就是这个精度。

自己核对 IP 位置:五步检查

下面的步骤不依赖特定数据库,适合排查“为什么某网站把我识别成别的地区”。

第 1 步:确认你查的是哪个出口 IP

同一台机器可能有多个出口:IPv4 和 IPv6 走不同线路,浏览器和命令行走不同代理,不同网站被分流到不同出口。先分别看清楚:

# 命令行看到的 IPv4 / IPv6 出口
curl -4 https://cloudflare.com/cdn-cgi/trace
curl -6 https://cloudflare.com/cdn-cgi/trace

返回内容里,ip= 是出口地址,loc= 是 Cloudflare 判断的国家代码,colo= 是你连上的 Cloudflare 机房。浏览器侧的出口可以打开 /ip 查看,页面也做多出口检测。如果 IPv4 和 IPv6 出口不一致,先看 IPv6 代理不生效:双栈网络下出口不一致的排查。

第 2 步:查注册信息(RDAP)

RDAP 是 WHOIS 的结构化替代,返回 JSON,更好读。下面以文档保留地址 203.0.113.10 为例,使用时换成你的出口 IP:

# 查询 APNIC 的 RDAP 服务;地址不归 APNIC 管时,按返回的跳转去对应 RIR
curl -sL https://rdap.apnic.net/ip/203.0.113.10 | jq '{name, country, startAddress, endAddress}'

# 或者用传统 whois
whois 203.0.113.10 | grep -iE 'netname|country|descr|org'

重点看 country(注册国家)和 name / netname(网段名称)。网段名里常带有机房、云厂商或宽带业务的标识。

第 3 步:查 ASN,判断网络类型

whois -h whois.radb.net 203.0.113.10 | grep -iE 'origin|descr'

拿到 ASN 后看它属于谁:家宽运营商、移动运营商、云厂商还是 CDN。机房 IP 和家宽 IP 在地理库里的表现差别很大,判断方法见 机房 IP 和家宽 IP 有什么区别。

第 4 步:横向比对多个库,只信一致的部分

把多个数据库的结果放在一起,按“国家 → 省份 → 城市”逐级看。从哪一级开始分歧,就只信到上一级。

第 5 步:用延迟做反向验证

假设某个库说这个 IP 在东京,而你从国内到它的往返延迟和到美国西海岸差不多,这个城市结论就站不住。延迟不能精确定位,但能排除不可能的位置。原理见 网站如何用延迟判断你在用代理。

cdnping 的 11 库投票和置信度怎么读?

/ip 页面的“出口 IP 情报”会同时查询 11 个地理库,按结果投票给出位置,并附一个置信度。读的时候可以这样理解:

  • 投票结果是多数库认同的位置,不是某一家的答案。11 个库里大部分给出同一个国家和城市时,比单库查询更可靠。
  • 置信度低,说明各库之间有明显分歧,这时应该展开看每个库的具体结果。
  • 国家一致、城市分散:最常见的情况,按上文说的,只信到国家或省份。
  • 国家分成两派:优先怀疑广播 IP 或网段刚迁移,对照页面上的 RDAP 注册信息和“原生 IP / 广播 IP”判断一起看。
  • IP 类型显示为机房:机房网段的地理信息多来自登记,城市级更容易出现总部城市和机房城市混用。

各项检测的数据口径可以在 数据方法 页面查看。要注意,多库一致不能证明结果就是真实位置:如果几个库引用了同一份上游数据,它们会一起错。

网站把我识别成别的地区,该怎么办?

先分清两种情况:

  1. 地理库本身不准:你确实在 A 地直连上网,但某网站认为你在 B 地。可以向对应的数据库提交纠错(多数提供商有公开的纠错入口),或者问你的运营商是否发布了 geofeed。纠错生效要等数据库发版,网站侧也可能还有缓存。
  2. 出口和你以为的不一样:分流规则、IPv6、DNS 让部分流量走了另一个出口。用 /ip 的多出口检测和 DNS 泄漏检测排查,再对照 国内网站如何看到你的真实 IP 理解分流结果。

一些在线服务会按地区提供或限制功能,判断依据往往不只是 IP 地理库。遇到这类提示,以服务方的官方说明为准,并遵守服务条款和当地法规。

地理位置和 IP 纯净度是一回事吗?

不是。地理库回答“这个 IP 在哪”,信誉库回答“这个 IP 有没有滥用记录、是不是代理或机房”。两者数据来源不同,也会各自出现分歧。同一个 IP 完全可能各库地理位置一致,信誉评分却差很多,原因见 为什么不同网站测出的 IP 纯净度不一样。

如果想把出口 IP、DNS、IPv6 和 API 连通性一次查完,可以按 开发者网络自检清单(2026 版) 逐项走,再用 首页测速 看各家 AI API 的实际连接情况。

核对顺序可以记成一句话:先确认出口,再看 RDAP 和 ASN,然后比较多个库,在开始分歧的那一级停下,必要时用延迟排除不可能的位置。

相关文章

继续阅读