数据质量

为什么有些 IP 段只能解析到国家,而无法解析到城市

并非每个 IP 地址都支持同样精度的地理定位,对于相当数量的地址段来说,无论由哪家服务商进行查询,国家级的分辨率确实就是能够如实宣称的极限。理解为什么会这样,而不是假定这只是更好的数据就能轻易弥补的缺口,有助于为在您自己的应用中处理这些结果设定正确的预期。

有些地址段被分配给在全国范围内广泛运营的组织,而这些组织在内部实际路由或分配流量时,没有清晰一致的区域划分,这意味着即使在原则上也不存在可以报告的可靠的更细粒度信号,而不只是某个特定数据集中恰好缺少了这个信号。某些类别的网络,包括一些卫星服务和一些大型集中式服务商,会通过数量相对较少、覆盖极广地理区域的出口来路由流量,这在其他文章中已有介绍,这限制了对这类流量进行地理定位所能如实达到的精度,无论其他各类网络的底层汇编数据有多好。

新分配或最近重新分配的地址段,也可能缺乏足够的真实使用数据来支持国家级以上的置信度,原因很简单:IP 地址的城市级地理定位通常依赖于长期积累和关联真实的使用信号,而一个在当前分配下尚未经过足够长时间活跃、稳定使用的地址段,还没有产生这样的信号,无论底层方法在其他方面有多好。

在以上每一种情况下,正确的做法都是如实报告国家级精度,而不是为了填满字段而编造一个看似合理却毫无依据的城市猜测。一个自信但错误的城市对您的应用来说,远比一个如实但粗略的国家级结果更糟糕,因为一个错误却看似合理的城市,可能会悄无声息地通过假定它可靠的逻辑,导致难以追溯根源的下游错误;而国家级结果至少清楚地表明了自身的局限,促使您采取适当保守的处理方式。

如果您的应用在相当一部分逻辑中依赖城市级准确性,值得明确检查返回的结果是否确实包含一个具体的、已填充的城市字段,还是只回退到国家和地区,并为后一种情况准备好合理的默认行为,而不是假定存在一个实际上并不存在的城市值。我们的 IPv4IPv6 查询会针对给定地址,准确返回底层数据如实支持的内容,无论其粒度恰好处于哪个层级,而不会把一个低置信度的猜测塞进一个它无法可靠支撑的字段。