用边界情况而不只是理想路径来测试位置数据
一个位于地图完善的市中心的地址,几乎无法告诉您系统如何处理乡村路线、有争议的边界或靠近两极的查询。请有意识地测试这些困难情况。
IPv6 的设计初衷是解决地址耗尽问题,它解决得如此彻底,以至于其涉及的规模改变了多年来基于 IPv4 的地理定位实践中沿袭下来的一些实际假设。分配给一个组织甚至一个个人用户的单个 IPv6 地址块,所覆盖的地址空间可能远远大于分配给一家大型 ISP 的整个 IPv4 地址块,这改变了分配规模与使用者的规模或具体程度之间的相关性的意义。
这在几个实际方面影响地理定位。区域互联网注册管理机构仍然按照与 IPv4 相同的区域结构分配 IPv6 地址块,ARIN、RIPE NCC、APNIC、LACNIC 和 AFRINIC 各自管理其所在区域的分配,因此 IPv6 的国家和地区识别与 IPv4 基于相同的底层注册逻辑。IPv6 的不同之处在于 ISP 如何将其分配细分到单个客户:由于典型地址块的规模极大,将一个大的、通常固定的范围分配给单个用户或单个站点是切实可行的,而不必像 IPv4 上 CGNAT 通常所做的那样,动态共享一个小得多的地址池。
这种差异对地理定位准确性来说是一把双刃剑。分配给特定用户的固定、专用 IPv6 范围,原则上可以比在 CGNAT 地址池中频繁重新分配的 IPv4 地址支持更稳定、更一致的长期位置追踪。与此同时,IPv6 的普及程度,以及将特定 IPv6 范围映射到精确位置的底层数据,总体上不如对应的 IPv4 数据成熟,因为 IPv4 地理定位积累细节的时间要长得多,这可能意味着某些 IPv6 范围的结果更粗略,即使同一网络对应的 IPv4 范围能够解析得更精确。
关于 IPv6,还有一个值得了解的实际细节,它与地理定位准确性本身没有直接关系,但会影响查询的执行方式。IPv6 地址可以用十六进制映射形式在其中编码一个 IPv4 地址,写法类似于 ::ffff: 后跟点分十进制表示的 IPv4 地址。地理定位系统需要识别这种形式,并将其解析回底层的 IPv4 地址,才能正确查询,而不是把它当作一个与已知 IPv4 数据毫无关联的、不透明的 IPv6 地址。
My Geocode 的 IPv6 查询 会自动将十六进制映射的 IPv6 地址解析回其 IPv4 形式,并返回与 IPv4 查询 相同的国家、地区、城市、邮政编码、坐标、时区、ASN 和组织字段,因此无论某个请求碰巧通过哪个协议版本到达,您都能获得一致的处理。