IPASK
文章 · technical

GeoIP 数据库是怎么工作的(以及为什么城市级不准)

地理定位数据从哪来、accuracy_radius 到底是什么意思、为什么免费库和商业库会打架、多久更新一次。

2026-10-28 technical #GeoIP#数据#精度
GeoIP 数据库是怎么工作的(以及为什么城市级不准)

位置数据的三个来源

IP 地理定位是拼出来的:

  1. 注册局数据:RIR 记录说明地址段分配给了哪个国家。
  2. 网络拓扑:前缀在哪宣告、路由怎么走。
  3. 真值:问卷、App 遥测、探针、众包修正。

不同厂商的权重不一样,这就是为什么同一个地址,两个数据库能差几百公里。

accuracy_radius 是什么意思

MaxMind 给每条记录一个 accuracy_radius:估计点周围的大致半径(公里)。5 公里说明有城市级把握;500 公里基本等于只知道国家,城市是拿最大城市猜的。

这是最该显示的字段:写「柏林 ±50 公里」比只写「柏林」诚实得多。

为什么免费和付费会打架

更新节奏

注册数据每天在变,城市级估计变化很慢。MaxMind 的 GeoLite2 每周更新,商业库更频繁。记录超过两周,城市字段就该当过期处理。

怎么判断一个定位说法

问三个问题:

  1. 厂商有没有公布精度半径?
  2. 库的类型匹配用途吗(国家级 vs 城市级)?
  3. 数据源是免费还是商业维护——厂商有没有说明?

只给城市名、不给半径的,是把猜测当事实。

读完先验一批 IP? 去验一批 →