IP 情报 API 与地理定位 API 的区别
IP 地理定位 API 返回 IP 地址表观所在的位置,通常包括国家、地区、城市和坐标;而 IP 情报 API 除此之外,还返回有关网络及其信誉的信息:由谁运营、是否为数据中心,以及是否为已知的 VPN、Tor 或滥用地址。前者回答“在哪里”,后者还回答“这是什么连接,是否可以信任”。
两者之间的界线并不固定,各家服务商对这些术语的使用也比较宽松。有些“地理定位”产品已经包含 ASN 数据,而有些“情报”产品基本上就是同样的位置数据外加几个标记。比较它们的有用方式,是问问自己需要依据一个地址做出哪些决策,以及哪些字段能支持这些决策。
纯地理定位 API 能提供什么
位置字段服务于一组众所周知的任务:显示本地语言或货币、选择就近的内容区域、应用国家级法律规则,以及填写表单的国家字段。对这些用途,国家通常可靠,城市有用但只是近似。数据描述的是地址段注册或路由的位置,而不是某台设备,在将其用于任何敏感用途之前,应阅读为什么 IP 位置反映的是网络而不是人。
仅凭位置无法告诉你的是,访问者是否就是位置所暗示的那个人。位于法兰克福的地址,可能是身在法兰克福的人,也可能是别处某人租用的云服务器,或是 VPN 出口。这三种情况下坐标是完全相同的。
情报信号补充了什么
情报数据回答的正是第二个问题。在 ipto 上,主查询(GET /v1/ip)在返回位置的同时还返回:
- 网络归属:
asn和组织名称,让你能区分消费级 ISP 与托管公司。ASN 查询会将其展开为所有者、国家和所宣告的地址段,而这篇 ASN 指南解释了其重要性。 - 连接标记:
is_vpn、is_tor、is_abuser和is_datacenter,由威胁情报源数据和网络归属推导而来。 - 地址有效性:
bogon和bogon_type标示私有、环回和其他保留空间,这些地址绝不应是公网客户端。bogon IP 检查器会显示匹配的地址段。 - 货币:所解析国家的
currency_code,便于定价。
每个决策都能清晰地对应到某个字段。决定是否在注册时应用更严格的检查,用的是标记。决定某条日志是否值得调查,用的是 bogon 字段。决定显示哪种价格,用的是位置和货币。纯位置数据源只能帮助完成最后一项。
需要牢记的限制
字段多并不意味着确定。ipto 上的威胁情报源标记每 6 小时刷新一次,IP 和 ASN 数据集每天刷新,因此全新的 VPN 端点可能在一段时间内不被标记。VPN、Tor 和滥用标记目前仅覆盖 IPv4,所以 IPv6 地址对它们返回 false 而非猜测,不过在地址段被覆盖的情况下,IPv6 地址仍会返回 ASN、组织和城市级位置。住宅代理不会被检测到,阴性标记最好理解为“未知为匿名化”。关于信誉评分的概念,请参阅 IP 信誉评分的工作原理。
标记也只是信号而不是裁决。许多合法用户位于 VPN 或企业数据中心出口之后,所以标记通常应当增加摩擦(例如第二步验证),而不是直接封锁。要了解如何组合多个信号,欺诈评分检查器把 IP、邮箱、电话和 User-Agent 汇总为 0 到 100 的分数,并展示各部分的贡献。
如何在二者之间选择
如果你唯一的需求是显示本地内容,仅位置的数据源就够了,集成也更小巧。如果流程的任何部分涉及账户、支付、免费试用、内容访问或滥用处理,你很可能还需要网络上下文,而在同一个响应中获取比拼接两个服务更简单。自托管数据库是另一条路线,有不同的权衡,详见自托管与 API 方式的 IP 数据库。
你可以直接看到差异。curl https://ipto.to/v1/ip 会返回你自己的地址以及上述所有字段;该服务免费,无需注册,每天允许 1,000 次请求。完整字段列表见 API 文档。试着查询几个你已知的地址,比如家庭连接、云服务器和 VPN 端点,并比较哪些字段发生了变化。位置可能几乎不变,而 ASN、数据中心标记和 VPN 标记将承担大部分工作。