用边界情况而不只是理想路径来测试位置数据
一个位于地图完善的市中心的地址,几乎无法告诉您系统如何处理乡村路线、有争议的边界或靠近两极的查询。请有意识地测试这些困难情况。
当用户通过 VPN 连接时,IP 地理定位并没有失败,它只是回答了一个与您本来想问的不同的问题。查询正确地识别出了流量当前的出口网络,也就是 VPN 服务商的服务器,而不是用户自己的连接。如果该出口服务器位于另一个国家,位置结果就会确定且正确地将用户定位在那里,因为从网络的角度来看,流量确实是从那里发出的。
代理在原理上也是如此,只是细节有所不同。正向代理将请求从一个 IP 转发到另一个 IP,目标只能看到代理的地址。透明代理可能会在请求头中传递原始客户端地址,但配置得当的代理会将其完全隐藏。无论哪种情况,地理定位查询对它所收到的 IP 的判断都没有错。它只是在描述该 IP 所属的网络,也就是代理或 VPN 运营商的基础设施,而不是背后的那个人。
这对两种经常被混淆的用例都很重要。如果您的目标是合规或内容本地化,准确识别出口网络往往正是您所需要的,因为那是流量在法律上经由的司法管辖区。如果您的目标是欺诈检测,值得关注的信号就不是位置本身,而是该连接来自已知属于 VPN 或托管服务商的基础设施,而不是家庭宽带或移动网络,这是一个独立于地理定位本身的数据点。
检测某个 IP 是否属于 VPN 或代理基础设施,与将该 IP 定位到地图上是两个不同的问题,它依赖于追踪哪些地址段由托管服务商和 VPN 服务商运营,而随着新服务上线、旧服务被重新分配,这份列表在不断变化。这项信号作为地理结果之外的可选信息提供,因为默认将其捆绑到每个响应中,会拖慢那些并不需要它的请求。
这一切都不会让 IP 地理定位变得不那么有用。它让 IP 地理定位成为对网络拓扑的描述,而这本来就是它的本质。将被标记为 VPN 的结果理解为“该连接当前通过这个网络出口”,而不是“这肯定不是用户居住的地方”,数据就会完全兑现它的承诺。如需在位置字段之外获取网络详情,请在 IPv4 或 IPv6 查询中传入 mg_extras=1 或 X-MG-Extras 请求头。