迁移

从 ipstack 迁移

ipstack 使用 access_key 查询参数进行认证,并返回一个 JSON 响应,包含 type(ipv4 或 ipv6)、continent_codelatitudelongitude 等字段,在更高的档位中还有一个嵌套的 connection 对象,将自治系统和 ISP 详情与顶层字段分开存放。这种嵌套的 connection 结构比一些竞争对手更扁平的格式要复杂一些,适合希望将 ISP 和网络详情作为独立逻辑分组、而不是与位置字段混在一起处理的应用。

迁移这种嵌套结构比迁移扁平响应需要更多一点细心,原因很简单:响应树中可能出现字段名称差异的地方更多。在认为迁移完成之前,值得专门针对嵌套路径进行测试,而不只是测试顶层字段。

My Geocode 的 ipstack 兼容主机重现了完整的结构,包括 typecontinent_codelatitudelongitude 字段以及嵌套的 connection 对象,只更改了版权、条款和隐私文本。参考详情见 /compatibility/ipstack/。读取 response.connection.ispresponse.type 的代码,在用新密钥指向新主机后,应返回相同的结构。

由于 IP 查询在 My Geocode 上是端到端完全可用的,这里的结果是具体的,而不只是描述结构。对某个地址的查询会实时返回国家、地区、城市、坐标和连接详情,并经过一个让 IP 地理定位保持最新的缓存层,而不是依赖不频繁的批量更新。

针对 ipstack 集成的具体迁移说明:

  • access_key 查询参数模式可以直接对应我们的查询参数选项,如果您想同时更改认证方式,也可以在同一次迁移中改用 X-API-Key 请求头、Authorization: Bearer 或 HTTP Basic 认证
  • 可选的附加字段(相关时的海拔、IP 威胁详情、更深入的网络信息)可以通过 mg_extras=1X-MG-Extras 请求头获得,它们是对标准结构的补充,而不会取代其中任何部分
  • 如果您的集成会检查 security 字段来做代理或威胁检测,这些具体的值属于可选的附加内容,而不是基础兼容响应的一部分,因此在假定完全一致之前,请先确认您的代码实际依赖哪些字段

价格方面,完全不用密钥即可每天免费发出 2,500 次请求,每个密钥还各自拥有每天 2,500 次免费请求,按网络计算。超出之后,统一适用每次请求 €0.0001 的预付额度或每月 €50 的 Unlimited 密钥,所有端点(包括这个兼容主机)价格相同。对于在自己的内部模型中把 ipstack 的 connection 对象作为独立数据分组使用的应用,这一分组原样保留,因此基于该结构构建的下游代码、仪表板和数据仓库都能保持完整。