在 IP 地址查询 上看到自己的归属地写着「浙江省杭州市」,而你人在绍兴。或者更夸张——你在广东,它说你在北京。
这不是工具查错了。IP 归属地从原理上就只能做到这个精度,理解了它是怎么被生产出来的,就知道什么时候可以信、什么时候完全不能信。
第一件事:它不是定位,是查表
很多人以为查 IP 归属地像手机定位那样有某种测量过程。没有。它做的事只有一件:
拿你的 IP → 在一张「地址段 → 地区 + 运营商」的表里找 → 返回那一行
所以这个问题的全部内容就变成了:这张表是谁做的、怎么做的、有多新。
这张表从哪来:四层分配链
| 层级 | 谁 | 分配什么 | 有城市信息吗 |
|---|---|---|---|
| 1 | IANA | 把大块地址分给五大区域注册机构 | 无 |
| 2 | RIR(亚太是 APNIC) | 分给各国的 NIR 和大型运营商 | 无 |
| 3 | NIR / 运营商(中国是 CNNIC 及三大运营商) | 分给省级、地市级的城域网 | 内部有,不公开 |
| 4 | 归属地库 | 把上面三层拼成一张可查的表 | 靠推断和众包 |
信息损失发生在第 3 层到第 4 层之间。
第 1、2 层是有权威数据的:APNIC 公开 whois 和分配清单,你能查到某个 /16 属于哪家运营商、注册在哪个国家。但它只到这里——whois 里没有城市。
BGP 也给不出城市。互联网上宣告的路由只说明「这段地址由某个自治系统(AS)负责」,一个省级运营商的 AS 下面挂着整个省的地址,路由聚合之后连省都分不出来。
唯一知道「这段地址投放在哪个城市」的是运营商自己,而这份信息既不公开,也在持续变动。
所以城市这一级,是拼出来的
归属地库做城市级数据,靠的是这么几种手段的组合:
- 运营商公开或半公开的资料 —— 覆盖有限,更新不及时
- 测量推断 —— 从多个已知位置的探针测 RTT,三角定位出大致区域。对骨干网稳定的地址段有效,对移动网络基本失效
- 用户众包上报 —— 「我在绍兴,但你显示杭州」,攒够了就修
- 反向 DNS 的命名规律 —— 有些运营商的 PTR 记录里带城市拼音缩写,但覆盖率很低
这四种没有一种是权威的。这就是为什么同一个 IP 在不同网站会查出不同城市——各家拼出来的表本来就不一样。
四类系统性偏差
除了随机误差,还有四类必然发生的偏差,知道了就不会误判:
1. 移动网络:全省显示成省会
手机上网时,你的流量不是从基站直接出互联网,而是先汇聚到省级的核心网出口。出口在哪,公网 IP 就登记在哪。
所以你在省内任何一个地级市用移动数据,查出来的常常都是省会。这不是误差,这就是你那个 IP 的真实归属地——只不过它和你的物理位置差了几百公里。
2. CGNAT:位置跟着运营商走
宽带走大局域网(运营商级 NAT)时,你拿到的内网地址在 100.64.0.0/10 这一段(RFC 6598 专门留给这个用途),而真正出网的公网 IP 由许多户共用。
那个共用出口登记在哪,你就显示在哪。顺带一提,这种情况下端口映射是做不了的,想在外网访问家里的 NAS 或监控,只能联系运营商申请真公网 IP。
3. 地址段调拨:库天生滞后
运营商会在内部把地址段从一个城市调拨到另一个城市,这件事对外不公告。归属地库要靠用户上报或下一轮测量才能发现,滞后几周到几个月是常态。
一个地址段刚被调拨过的那段时间,所有库都是错的。
4. VPN、代理、企业专线:显示出口节点
这一类不算「不准」——它显示的正是流量真实的出网位置,这恰恰是这些工具的用途。
离线库是怎么维护的
IP 地址查询 用的是 ip2region 离线库,查询在自己的服务器上完成,不经过任何第三方接口。它是一个社区众包项目:提交历史里大量是「修正某某省的地名」这类改动,也就是说,数据在持续被人工纠正。
这带来一个取舍:要不要自动跟上游最新版?
答案是不。上游自己也在来回修,自动跟最新等于把没人看过的数据直接推上线,真出了归属地错误无从对照。所以本站把数据版本锁死在一个固定的提交和校验和上,升级是一次有意的动作,一年做两三回。一个可能有几个月滞后但可对照的版本,好过一个每天都在变的版本。
那这个数字还有什么用
有用,只是用在别的地方:
够用的场景
- 风控的辅助信号 —— 常年在杭州登录的账号突然从境外 IP 登录,值得加一道验证。注意是「加一道验证」,不是「判定为盗号」
- 日志分类 —— 看流量大致来自哪些省份、哪家运营商,用于排查线路问题
- 内容分区 —— 按国家/地区切换语言和价格,国家级的准确率远高于城市级
- 看一眼陌生 IP 是哪来的 —— 服务器日志里的扫描源、邮件头里的发信地址
不够用的场景
- 判断某个人在哪 —— 城市级已是上限,且移动网络常年偏差几百公里
- 作为证据 —— 库有滞后、有推断成分,且可以被 VPN 轻易改变
- 精确到区县街道 —— 这一级的数据源根本不存在
一句话
IP 归属地是一份被持续修订的登记信息,不是一次测量。 当参考,不当证据。
延伸阅读:公网、内网、NAT、IPv6 之间是怎么协作的,见 IP 地址完整路径;IPv6 的地址类型和实际用法见 IPv6 地址类型速查。要看一个域名解析到哪些 IP、这些 IP 在哪,用 域名查 IP。
归属地数据仅供参考,不适合作为身份、位置或责任认定的依据。IP 地址查询 的查询过程不入库、不记日志、不写 Cookie。