为什么移动 IP 会让城市级定位失准
地理定位移动网络CGNAT
CGNAT、全国性网关和运营商路由,是城市定位结果偏差的主要原因。本文介绍如何设计能适应移动流量的风控规则。
# 为什么移动 IP 会让城市级定位失准
如今,消费者 Web 流量中已有超过一半来自移动端,而移动网络恰恰是许多“想当然”的地理定位规则最容易失效的地方。
运营商级 NAT
运营商手里的 IPv4 地址远远不够分配给所有用户,因此成千上万台设备往往会共用同一个公网 IP。这个公网 IP 通常位于运营商网关,而网关多部署在大城市,并不代表用户的真实所在地。于是,一个身处乡镇或偏远地区的用户,经常会被识别成位于省会或首都。
这会带来几个很现实的问题:
- 城市级定位相差数百公里很常见,并不一定是数据出错。
- 按 IP 做限流,可能会误伤同一片区域的大量正常用户。
- 按 IP 做信誉评分并不公平;一个滥用者可能污染整个共享地址。
漫游与网关锚定
漫游用户的流量,很多时候仍会从归属运营商网络出口出去。比如一部德国手机人在意大利,连续一周都可能被识别为德国流量。如果你的规则一看到国家变化就触发拦截,漫游用户会频繁踩中风控。
IPv6 改变了部分格局
在 IPv6 环境下,每台设备通常会从一个 /64 或 /56 前缀中获得自己的地址。做限流时,应以 /64 为单位,而不是盯着单个地址;否则设备只要在同一前缀内轮换地址,就能立刻绕过限制。移动 IPv6 的地理定位有时反而更准确,因为聚合程度更低,但不同运营商对这些前缀的覆盖质量仍有差异。
如何围绕移动流量设计规则
- 使用连接类型。当连接类型为
mobile时,把城市信息降级为参考信号,主要依赖国家级判断。 - 对移动网络,不要按 IP 做核心限流,应优先基于账号或设备身份。
- 不要把城市距离作为移动流量的欺诈信号。
- 对已有账号,遇到国家变化时应提高认证强度,而不是直接拒绝访问。
Guarda 会在每次查询中返回连接类型,正是为了让这些分支规则更容易编写。真正该问的不是“这个 IP 在哪里”,而是“我应该在多大程度上相信这个位置”。
