> For the complete documentation index, see [llms.txt](https://docs.ipcheck.ing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipcheck.ing/knowledge-base/zh/concepts/geoip-explained.md).

# GeoIP：IP 地理位置如何工作

一个网站会用正确的语言欢迎你，并提供正确的货币。另一个却坚持认为你在三百公里外的一座城市。它们都在使用同一种数据。怎么做到的？

## IP 地址中并没有位置信息

从这里开始，因为这能澄清大部分困惑。

IP 地址完全不包含任何地理信息。它只是用于路由的标识，和电话号码一样。里面没有任何内容 `203.0.113.42` 会写着“柏林”。

相反，实际存在的是一组 **数据库** ，它们把地址范围映射到推测的位置。多家公司都会建立这些数据库，每家使用的来源组合和判断方式都不同。当网站“从你的 IP 检测你的位置”时，它是在这些数据库中的某一个里查询你的地址，并读出某个人的估计结果。

这就是为什么对 GeoIP 更诚实的描述是 *推断*，而不是测量。

## 数据从哪里来

按大致从高到低的可靠性顺序，这些数据库主要由四种来源提供数据。

**注册记录。** 地区互联网注册管理机构会公布每个地址段由谁持有，以及登记的国家和邮政地址。对于国家级数据，这很可靠；但对更细的粒度就不那么可靠——国家级运营商的记录可能只列出一个总部地址，而这些地址却用于整个国家。

**路由数据。** 哪个自治系统宣布某个前缀，以及该网络在哪里运行，都是公开可见的。一个前缀如果只被一家只在日本运营的网络宣布，那么它几乎肯定是在日本使用。见 [什么是 ASN？](/knowledge-base/zh/concepts/what-is-an-asn.md).

**测量。** 服务商会从许多已知地点发送定时探测包，并利用延迟来限制某个地址在物理上可能位于哪里。光在光纤中的传播速度大约是每毫秒 200 公里，所以从某个已知城市往返 2 毫秒的稳定延迟，足以排除地球上大部分地区。这就是城市级猜测之所以能有任何精度的原因——而且当路径并不直接时，精度会大幅下降。

**自行报告的修正。** 网络运营商可以为自己拥有的地址段发布位置信息，而且大型运营商确实会这么做，因为让客户看到正确内容符合他们的利益。还有一种正式机制可用于发布这些信息，有时称为 geofeed。这些修正通常是可获得的最准确来源——前提是它们存在并且保持更新。

在这一切之上，还叠加着一层推断：用户提供的信号、观察到的行为，以及其他来源之间的交叉核对。

## 为什么国家通常是对的，而城市常常不是

国家级准确度通常很高，因为它依赖的是最强的来源。地址段分配给在某个国家注册的组织，由在该国运营的网络宣布，而且很少跨境使用却不被运营商察觉。

城市级准确度则是另一回事，原因会叠加。

* **地址段并不遵循城市边界。** 运营商会把一个地址段分配给某个区域，并在需要时在其中重新调配地址。
* **流量从设备所在之处出口。** 你的运营商可能会把整个省的流量都经由首府的一处设施转出。这样每个客户看起来都像是在首府。这在移动网络中极其常见。
* **测量会产生噪声。** 基于延迟的估计默认路径相当直接。任何绕路——而绕路是常态——都会扩大误差。
* **没有什么会强制更新。** 当一个地址段被重新分配到另一座城市时，数据库只有在它信任的某个来源反映出这一变化后才会得知。

比较合理的看法是：把国家当作大概率正确，把地区当作常常正确，把城市当作一个线索。坐标尤其要谨慎——它们通常指向某个行政区域的中心，而不是真实地点。一些数据库在不了解更多信息时，会用某个国家的地理中心作为占位符，这已经给恰好住在那里的人造成了有据可查的问题。

| 字段        | 典型可靠性   | 原因                  |
| --------- | ------- | ------------------- |
| 国家        | 通常正确    | 注册和路由都支持它           |
| 地区 / 州    | 通常正确    | 取决于提供者文档的细致程度       |
| 城市        | 经常出错    | 出口点、地址段重新分配、旧数据     |
| 坐标        | 很少是真实位置 | 通常是某个区域的中心，或者一个占位符  |
| 提供商 / ASN | 通常正确    | 来自路由数据，而路由数据是公开且最新的 |

## VPN、代理和 CGNAT 会怎么影响它

**VPN 或代理会完全替换这个答案。** 数据库现在描述的是出口服务器，这正是你想要的。如果它把你的 VPN 服务器所在城市报错了，那是数据库对提供商地址的不准确，而不是泄漏。

**数据中心地址段很容易识别。** 属于托管网络的地址在大多数数据库中都会被标记出来。这就是流媒体服务检测 VPN 使用的方法——不是因为它知道你在哪里，而是因为它知道普通家庭用户不会从服务器机架里上网。

**CGNAT 会把你的表观位置转到出口点。** 在运营商级 NAT 之后，你和许多其他客户共享一个公网地址，报告的位置就是运营商的转换设备所在之处。见 [公网、私网与 CGNAT 地址](/knowledge-base/zh/concepts/public-private-cgnat.md).

**移动网络是所有类型中最不精确的。** 公网地址少、出口点少，而且持续重新分配。用移动数据被定位到另一座城市是正常现象，不是故障。

**回收再利用的地址会带着旧数据。** 地址会易手——在不同服务商之间，在不同国家之间。数据库的更新速度不一，一个最近转让的地址段可能会在几个月内都被错误描述。

## 网站会如何使用这个答案

了解它的用途有助于你判断这种不准确会给你造成多大影响。

* **语言和货币默认设置。** 国家级，因此通常正确。
* **把你发送到附近的服务器。** 内容网络会选择网站的一个附近副本，通常用的是你的 DNS 解析器的位置，而不是你自己的地址。见 [DNS 如何工作](/knowledge-base/zh/concepts/how-dns-works.md).
* **许可和可用性。** 流媒体片库、体育转播和商店可用性都是按国家决定的。
* **欺诈和风险评分。** 来自意外国家的登录会触发额外检查。这正是错误国家真正会给你带来不便的地方。
* **法律和税务要求。** 同意横幅、年龄限制和销售税通常都取决于报告的国家。

请注意，几乎每一种重要用途都是国家级的。城市级数据大多用于广告，以及向你展示附近的商店——这些场景里，出错带来的是烦人，而不是伤害。

## 为什么数据库会不一致

因为它们是由不同输入构建出来的独立产品。

每个厂商对各来源的权重不同，按各自的时间表刷新，应用各自的修正，并且在不确定时会各自决定该怎么说——有些会猜，有些则不返回任何内容。两个数据库查看同一个地址，就像两个分析师在阅读重叠的证据并得出不同结论。

所以，当两个工具给你不同的城市时，二者都不是故障。你看到的是两个估计值。而当多个独立数据库相互一致时，这种一致本身就是有意义的信号——比任何单一答案都强得多。

## 常见误解

**“GeoIP 知道我的地址。”** 它并不知道，也不可能知道。它最多只能识别出你的运营商把你路由经过的区域。手机或笔记本上的精确位置来自 GPS、附近的 Wi‑Fi 网络，以及你授予的权限——这是完全不同的机制。

**“城市报错意味着我的 VPN 在泄漏。”** 通常恰恰相反。如果位置不是你的，也不是你运营商的位置，先检查它是不是你的 VPN 出口——见 [我的 VPN 或代理在工作吗？](/knowledge-base/zh/diagnose/is-my-vpn-working.md).

**“我可以直接修正它。”** 不能直接修正。修正来自持有该地址段的网络运营商。有些数据库供应商接受个人报告，但单个用户无法改变某个地址段的描述方式。

**“我的 IPv4 和 IPv6 应该显示同一个地方。”** 它们经常不会。IPv6 地址段更新、更缺乏完整文档，所以这两者的数据质量往往不同。见 [IPv4 与 IPv6](/knowledge-base/zh/concepts/ipv4-vs-ipv6.md).

{% hint style="info" %}
**在 MyIP 上亲自看看**

MyIP 不会挑选一个数据库并把它的答案当作事实展示出来。它会查询同一个地址的多个独立地理位置来源，并显示每个结果，而且你可以在首选项中更改默认使用哪一个。

对比这些卡片是理解其工作原理的最快方式：来源一致时，你可以信任这个字段；来源分散时，你看到的就是一个猜测。见 [读取你的 IP 卡片](/knowledge-base/zh/getting-started/reading-your-ip-cards.md) 按字段逐项讲解，以及 [为什么我的 IP 位置不正确？](/knowledge-base/zh/diagnose/why-is-my-ip-location-wrong.md) 当答案看起来明显错误时。
{% endhint %}

## 相关概念

* [什么是 ASN？](/knowledge-base/zh/concepts/what-is-an-asn.md) — 最多位置猜测背后的路由数据
* [公网、私网与 CGNAT 地址](/knowledge-base/zh/concepts/public-private-cgnat.md) — 为什么共享出口会改变你的表观位置
* [IPv4 与 IPv6](/knowledge-base/zh/concepts/ipv4-vs-ipv6.md) — 为什么你的两个地址可能报告不同的位置
* [DNS 如何工作](/knowledge-base/zh/concepts/how-dns-works.md) — 网站如何把你发送到附近的服务器


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ipcheck.ing/knowledge-base/zh/concepts/geoip-explained.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
