---
title: "IP 定位不准的原因：为什么 11 个 IP 库给出不同位置"
description: "IP 地理库的数据来自注册信息、路由、测量和用户反馈，更新有滞后，城市级本来就靠推断。本文讲清各库为何不一致、怎样用 RDAP 自查，以及如何读 cdnping 的多库投票与置信度。"
url: https://cdnping.org/blog/ip-geolocation-databases-differ
language: zh-CN
published: 2026-10-20
category: "IP 与隐私"
tags: ["IP 地理定位","IP 数据库","RDAP","原生 IP","网络排查"]
source: cdnping.org
license: Free to quote and summarize with a link to the url above.
---
# IP 定位不准的原因：为什么 11 个 IP 库给出不同位置

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

下文依次讲数据来源、分歧原因、自查步骤，最后说明 cdnping [IP 与环境检测](/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 的区别](/learn/native-ip-vs-broadcast-ip)。

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

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

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

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

## 自己核对 IP 位置：五步检查

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

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

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

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

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

### 第 2 步：查注册信息（RDAP）

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

```bash
# 查询 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，判断网络类型

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

拿到 ASN 后看它属于谁：家宽运营商、移动运营商、云厂商还是 CDN。机房 IP 和家宽 IP 在地理库里的表现差别很大，判断方法见 [机房 IP 和家宽 IP 有什么区别](/blog/datacenter-ip-vs-residential-ip)。

### 第 4 步：横向比对多个库，只信一致的部分

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

### 第 5 步：用延迟做反向验证

假设某个库说这个 IP 在东京，而你从国内到它的往返延迟和到美国西海岸差不多，这个城市结论就站不住。延迟不能精确定位，但能排除不可能的位置。原理见 [网站如何用延迟判断你在用代理](/blog/how-sites-detect-proxy-by-latency)。

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

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

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

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

## 网站把我识别成别的地区，该怎么办？

先分清两种情况：

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

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

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

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

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

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