IP API 中的 IPv4 与 IPv6
在 IP API 中如何处理 IPv4 和 IPv6,取决于客户端与 API 之间的约定。客户端应当区分成功、校验错误、身份验证失败、速率限制和临时性服务器错误。用 JSON 还是 XML 不会改变 HTTP 语义,而 IPv4/IPv6 值必须原样保存,不能按 IPv4 的长度来假设。
如何处理响应
校验 Content-Type、状态码、文档规定的字段和配额。HTTP 429 要单独处理:响应中带有 Retry-After 时遵循它,并使用有次数上限、带随机抖动(jitter)的指数退避。重试之前先考虑操作是否幂等。日志中可以记录请求标识符、状态和延迟,但绝不能记录 API 密钥。
关键细节
不要把 IP API 返回的字段存进只按点分十进制 IPv4 长度设计的数据结构中。应保存规范的 IPv6 文本形式或合适的二进制表示,在输入端接受压缩写法,并按照 API 约定测试环回地址、映射地址或双栈等情况。想发送真实请求、了解当前的 API 约定,请查看 2IP API。