用边界情况而不只是理想路径来测试位置数据
一个位于地图完善的市中心的地址,几乎无法告诉您系统如何处理乡村路线、有争议的边界或靠近两极的查询。请有意识地测试这些困难情况。
IP 地址是分配给网络的,而不是分配给某个人或某栋建筑的。这一个事实几乎解释了 IP 地理定位能做什么、不能做什么的全部内容。当您查询一个 IP 时,您是在询问持有该地址段的网络在哪里注册和运营,并据此推断出一个位置。您并不是在要求设备报告它的 GPS 位置,而那是可靠获取街道地址的唯一方式。
ARIN、RIPE NCC、APNIC、LACNIC 和 AFRINIC 等区域互联网注册管理机构把地址段分配给互联网服务提供商和大型网络,而不是分配给单个家庭。一家 ISP 可能持有一个服务整个都市区或整个地区的地址段,并在客户连接时把其中的地址动态分配给他们。查询其中任何一个地址,都能正确识别出 ISP,而且通常还能识别出城市,但它无法知道该连接当前终止于哪栋建筑,因为这些信息从不会离开 ISP 自己的系统。
这就是为什么 IP 查询返回的是国家、地区、城市和组织,而不是门牌级别的结果。这也是为什么同一办公网络上共享同一个公共 IP 的两台设备,即使位于不同的房间或不同的楼层,也会解析到完全相同的位置。IP 标识的是通往互联网的出口,而不是建筑内部的终端。
由此产生的实际准确性规律在整个行业中是一致的。国家级结果几乎总是正确的,因为地址段是在国界之内分配的。城市级结果通常正确,但当 ISP 通过另一个城市的区域枢纽路由流量时,可能会出错。任何比这更细的粒度,也就是仅凭 IP 确定具体的街道或建筑,无论您使用哪家服务商,都应被视为不可靠,因为底层数据根本不支持这样的分辨率。
好的 IP 地理定位会如实承认这个上限,而不是假装拥有超出数据支持范围的精度。正是出于这个原因,My Geocode 的 IPv4 和 IPv6 查询返回国家、地区、城市、邮政编码、坐标、时区、ASN 和组织,让您获得基于网络的查询真正能够支持的字段,并且处在其可靠的粒度上。
如果您的产品需要真实的街道地址,请向用户索取,或者请求设备 GPS。把 IP 地理定位用在它擅长的地方:欺诈信号、区域内容、粗略分析,以及可以让用户自行更改的默认值。