---
title: "IP归属地为什么不准：地理库原理、手机流量显示外省与多库判断方法"
description: "解释IP归属地为什么不准：它是IP地址段到地区的数据库映射，不是定位。文中有手机流量显示外省等现象的原因与验证对照表，以及用多个地理库投票判断哪个结果更可信的步骤。"
url: https://cdnping.org/blog/why-ip-location-is-inaccurate
language: zh-CN
published: 2026-10-23
category: "IP 与隐私"
tags: ["IP归属地","IP地理库","移动网络","CGNAT","出口IP"]
source: cdnping.org
license: Free to quote and summarize with a link to the url above.
---
# IP归属地为什么不准：地理库原理、手机流量显示外省与多库判断方法

IP归属地为什么不准？因为它根本不是定位。网站拿到的只是你的出口 IP，再去一张“IP 地址段对应哪个地区”的表里查一下，查到什么就显示什么。这张表由不同的数据商各自维护，更新有快有慢；运营商也可能把一段地址挪到别的城市使用，或者让很多用户从同一个出口上网。表和现实对不上，归属地就会偏，偏到外省也不奇怪。

## IP归属地到底是怎么查出来的？

服务器看到的是 TCP 连接的源地址，也就是你的出口 IP。它不知道你的 GPS，也不知道你的基站。拿到 IP 后，它去查一个地理定位数据库，库里大致是这样的记录：

| 地址段 | 国家 | 省份 | 城市 | 运营商 |
|---|---|---|---|---|
| 某个 /20 网段 | 中国 | 某省 | 某市 | 某运营商 |

这些记录的来源通常有几类：

- 注册信息：地址段由区域互联网注册机构分配给运营商或企业，注册信息里有组织名和登记地址，可以通过 RDAP 或 whois 查到。登记地址往往是公司总部，跟实际使用的城市不一定是一回事。
- 运营商提供的数据：有的数据商和运营商有合作，这部分地址的标注通常更准。
- 测量推断：从多个探测点测延迟、看路由，推算地址段大概在哪个区域。
- 用户侧数据：例如某些应用在用户授权定位后，把“这个 IP 当时在哪”回传给数据商。

每家数据商用的来源和权重不同，更新周期也不同。所以同一个 IP 在不同库里查到不同城市很常见。这部分细节可以看 [为什么 11 个 IP 库给出不同位置：地理定位数据从哪来](/blog/ip-geolocation-databases-differ)。

## 为什么会偏到外省？

常见原因有下面几类，一个 IP 可能同时占好几条。

### 运营商在省之间调配地址池

运营商拿到的地址段并不是永久绑定某个城市。某个省地址紧张时，可能把另一个省闲置的段调过去用。数据库如果还按旧记录走，就会把你显示成原来那个省。宽带用户换了一个新分配的地址后，归属地突然变了，多半是这个原因。

### 手机流量从集中出口上网

移动网络的数据流量不是在你身边的基站直接出公网，而是先回到运营商的核心网，再从数量有限的网关出去。一个网关可能服务好几个城市甚至一个大区，于是同一片地址段下的用户分布很广，数据库只能标一个城市。

漫游时更明显。数据漫游的流量通常会回到号码归属地的核心网再出公网，所以人在外地出差，手机流量显示的仍是号码所在省。反过来，如果数据库把某个大区网关的地址段标成了邻省，你人在本省也会显示成外省。

### CGNAT：很多人共用一个公网 IP

IPv4 地址不够用，运营商会让大量用户共享一个公网地址（运营商级 NAT）。这时“这个 IP 在哪”本来就没有唯一答案，数据库给出的只是一个近似。共享地址还会影响信誉判断，见 [共享 IP 与 CGNAT 会影响 IP 信誉吗](/blog/shared-ip-cgnat-reputation)。

### 数据库更新滞后

地址段易手、重新分配之后，数据商要过一段时间才会改。各平台用的库版本不同，同一天里一个平台显示新位置、另一个还是旧位置，这种情况很常见。

### 你走的根本不是本地出口

公司网络常常统一从总部出口上网，异地分支的员工会显示成总部所在城市。开了代理或 VPN，看到的是代理服务器的位置。还有一种容易忽略的情况：代理只接管了 IPv4，IPv6 仍然直连，不同网站走了不同的协议，查到的归属地就互相矛盾。排查方法见 [IPv6 代理不生效：双栈网络下 IPv4 与 IPv6 出口不一致的原因与排查](/blog/ipv6-dual-stack-proxy-mismatch)。

### 各平台用的数据源不同

社交平台、查询网站、云服务商的风控，各自接的是不同数据商，有的还叠加了自己的修正规则。所以拿 A 网站的结果去对 B 平台的显示，对不上并不说明哪一边错了。

## 对照表：现象、原因、怎么验证

| 你看到的现象 | 最可能的原因 | 怎么验证 |
|---|---|---|
| 家里宽带，归属地突然从本市变成邻省 | 运营商调配了地址池，数据库还是旧记录 | 查 RDAP 看地址段登记的组织；多库对比，看是否只有少数库给了外省 |
| 手机流量显示号码所在省，人却在外地 | 漫游流量回到归属地核心网出公网 | 切到当地 Wi-Fi 再查一次；两次出口 IP 和运营商应当不同 |
| 手机流量在本省也显示外省 | 移动网关覆盖大区，数据库标注偏差 | 多库对比；看各库给出的城市是否集中在同一大区 |
| 公司网络显示成总部城市 | 企业统一出口 | 查出口 IP 的 ASN 和组织名，通常是企业专线或总部所在地 |
| 一个网站显示国内，另一个显示国外 | 双栈出口不一致，或分流规则不同 | 分别查 IPv4 和 IPv6 出口；看国内网站读到的 IP |
| 同一 IP 在不同网站城市不同 | 各平台数据源和版本不同 | 多库投票，看多数意见和置信度 |
| 显示的是机房或云服务商所在地 | 正在通过代理、VPN 或云主机上网 | 查 IP 类型，机房 IP 和家宽 IP 的判断见下文链接 |

## 怎样自己查清楚：可以照做的步骤

### 第一步：确认真实出口 IP，分 IPv4 和 IPv6

在终端执行：

```bash
# 只走 IPv4
curl -4 -s https://www.cloudflare.com/cdn-cgi/trace | grep -E '^(ip|loc)='
# 只走 IPv6（没有 IPv6 会报错，属正常）
curl -6 -s https://www.cloudflare.com/cdn-cgi/trace | grep -E '^(ip|loc)='
```

`ip=` 是出口地址，`loc=` 是 Cloudflare 判断的国家。两次结果如果国家不同，先解决双栈不一致，再谈归属地。

### 第二步：查地址段登记给了谁

```bash
whois 你的IP | grep -iE 'netname|descr|country|org'
# 或者用 RDAP（亚太地区的地址可直接查 APNIC）
curl -s https://rdap.apnic.net/ip/你的IP | python3 -m json.tool | grep -E '"name"|"country"|"handle"'
```

这里能看到地址段的网段范围、登记组织和国家。注意它告诉你的是“谁持有这段地址”，不是“这个 IP 现在在哪个城市”。

### 第三步：多库对比，而不是只信一个

打开 cdnping 的 [IP 与环境检测](/ip)，“出口 IP 情报”一栏会用 11 个地理库投票给出位置，并附上置信度，同时显示 RDAP 注册信息和 IP 类型（机房、家宽、移动、Tor）。读结果时按下面的顺序看：

1. 国家是否一致。国家一级通常比城市一级稳定，如果出现分歧，优先怀疑代理、双栈或刚易手的地址段。
2. 省份是否多数一致。11 个库里多数给同一个省，少数给邻省，可以基本认定多数意见；少数派往往是旧记录。
3. 城市分散时，看是否集中在一个大区。移动网络和 CGNAT 地址常见这种情况，这时城市级结果本身就不可靠，置信度也会偏低。
4. 对照 IP 类型。显示为机房 IP，说明你走的是服务器出口，归属地反映的是服务器所在地，和你本人位置无关。区别见 [机房 IP 和家宽 IP 有什么区别](/blog/datacenter-ip-vs-residential-ip)。

### 第四步：换一个网络再查一次

手机流量和 Wi-Fi 各查一次，对比出口 IP、运营商和多库结果。如果换网络后归属地正常了，问题出在那条网络的出口，而不是你的设备。

### 第五步：看国内网站读到的是哪个 IP

开了分流规则时，国内网站和国外网站看到的出口可能不同。cdnping /ip 的“大陆分流检测”会读取多家国内 CDN 回传的客户端 IP，告诉你当前属于“大陆分流 / 全局代理 / 国内直连”中的哪一种。原理见 [国内网站如何看到你的真实 IP](/blog/how-chinese-sites-see-your-real-ip)，分流的概念可以看 [分流（split tunneling）是什么](/learn/split-tunneling)。

## 多个库给出不同城市，到底信哪个？

几条经验：

- 多数意见通常比单一来源可靠，但不是绝对。地址段刚被调配时，可能大多数库都还没更新，少数更新快的反而是对的。这时可以结合 RDAP 的登记变化和你自己换网络的结果一起判断。
- 置信度低时，别在城市一级较真。移动网络、CGNAT、企业出口这类地址，城市级结果本来就难以准确，能看的主要是省份。
- 原生 IP 和广播 IP 要分开看。有些地址段在一个国家注册，却被宣告到另一个地方使用，数据库容易按注册地标注。判断方法见 [原生 IP 与广播 IP](/learn/native-ip-vs-broadcast-ip)。
- 平台显示的属地以平台为准，但不等于你的真实位置。平台展示的是它所用数据源的查询结果，你在第三方工具上查到不同城市，两者都可能“各自正确”。

## 关于“IP属地显示外省”的几点提醒

- 开关飞行模式后，手机流量可能会分到一个新的出口地址，归属地有时随之改变，但这只是换了一条地址段，并没有解决数据库本身的偏差，下次还可能再出现。
- 平台展示 IP 属地有其规则和监管背景，本文只解释技术原因，不讨论如何改变平台显示的属地。请遵守平台的服务条款和当地法规。
- 如果你只是想知道自己的 IP 暴露了哪些信息（位置精度、运营商、类型、信誉），可以读 [你的 IP 地址到底暴露了什么](/blog/what-your-ip-address-reveals)。
