IP 地理定位 API
为任意公网 IPv4 或 IPv6 地址提供国家、地区、城市、坐标和时区。由 MaxMind GeoLite2 提供支持——完全本地计算,无共享速率限制。
集成指南
复制代码片段,替换你的 API 密钥,运行即可。适用于任何 HTTP 客户端——下方提供 cURL、JavaScript 和 Python 示例。
/api/ip-geolocationhttps://www.apipick.comGet geolocation data for any public IP address
ipstring可选Public IPv4 or IPv6 address. Omit to look up caller's own IP. 8.8.8.8
curl -X GET "https://www.apipick.com/api/ip-geolocation" \
-H "x-api-key: YOUR_API_KEY"{
"success": true,
"code": 200,
"message": "ok",
"data": {
"ip": "8.8.8.8",
"country_code": "US",
"country_name": "United States",
"continent": "North America",
"continent_code": "NA",
"city": "Mountain View",
"latitude": 37.4056,
"longitude": -122.0775,
"timezone": "America/Los_Angeles",
"currency": "USD",
"isp": "Google LLC",
"asn": 15169
},
"credits_used": 1,
"remaining_credits": 99
}为真实场景而生
欺诈检测
标记来自高风险地区的注册或交易。检查用户的 IP 是否与其声称的位置或账单所在国一致。
内容本地化
根据访客位置自动选择语言、货币和地区定价。仅向欧盟访客展示符合欧盟规定的 Cookie 横幅。
速率限制
按国家施加速率限制或访问控制。无需购买昂贵的安全工具,即可拦截或限流来自特定地区的流量。
AI 智能体数据增强
让 AI 智能体丰富用户记录、按地理位置对线索分类,或基于实时 IP 数据本地化生成的内容。
ipinfo.io 与 ipapi.co 的替代方案
按账户的积分计费——没有共享速率限制池,没有套餐分级,也没有每月一号就清零重置的月度上限。
ipinfo.io | ipapi.co | API Pick ✓ | |
|---|---|---|---|
| 免费额度 | 50k req/month | 1,000 req/day | 注册赠送 100 积分 |
| 速率限制模型 | 共享 IP 池风险 | 共享 IP 池风险 | 按账户积分 |
| 积分 / 配额会过期吗? | 每月重置 | 每日重置 | 永不过期 |
| 国家 + 地区 + 城市 | ✓ | ✓ | ✓ |
| 时区 | 付费套餐 | ✓ | ✓ |
| IPv6 支持 | ✓ | ✓ | ✓ |
| 欧盟成员标识 | 付费套餐 | ✓ | ✓ |
| 开始无需信用卡 | ✓ | ✓ | ✓ |
| 可用于 AI 智能体 / LLM | 部分支持 | 部分支持 | ✓ 原生 JSON |
共享速率限制池的问题
在 ipinfo.io 和 ipapi.co 的免费额度下,速率限制是 按客户端 IP 强制执行的。这意味着来自同一 Vercel、AWS 或 GCP 区域的所有请求共享同一个配额池。如果同一边缘节点上的另一个租户已经用光了每天 1,000 次的限额,你的 API 调用就会开始失败——哪怕你自己一个请求都还没发出。
基于积分的计费:任意规模下都可预测
API Pick 是 按账户计费,而非按 IP。每次调用恰好从你的余额中扣除 1 积分——且仅在响应成功时扣除。积分永不过期。无论你一天做 10 次还是 10,000 次查询,你都只为用量付费,完全不必担心共享配额带来的意外失败。
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
| data.ip | string | 查询的 IP 地址 |
| data.country_code | string | ISO 3166-1 alpha-2 国家代码(如 US、DE、JP) |
| data.country_name | string | 完整的英文国家名称 |
| data.continent | string | 大洲名称(如 North America、Europe) |
| data.continent_code | string | 两字母大洲代码(如 NA、EU) |
| data.city | string | 城市名称(不可用时为空字符串) |
| data.latitude | number | null | IP 所在位置的近似纬度 |
| data.longitude | number | null | IP 所在位置的近似经度 |
| data.timezone | string | IANA 时区标识符(如 America/Los_Angeles) |
| data.currency | string | 该国的 ISO 4217 货币代码(如 USD、EUR) |
| data.isp | string | 来自 ASN 数据库的 ISP / 组织名称 |
| data.asn | integer | null | 自治系统编号(如 Google 为 15169) |
| credits_used | integer | 本次请求扣除的积分 |
| remaining_credits | integer | 你账户中剩余的积分 |
速率限制
限流按 API 密钥计,采用 60 秒滑动窗口。触发限制时会返回干净的 429,并带 Retry-After 响应头。
120req/min
按 API 密钥、按端点计。60 秒滑动窗口。
3concurrent
每个 API 密钥的最大同时进行中请求数。
X-RateLimit-Limit每分钟允许的最大请求数X-RateLimit-Remaining当前窗口内剩余的请求数X-RateLimit-Reset当前窗口重置前的秒数Retry-After重试前需等待的秒数(仅在 429 时)HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 120 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}常见问题
问: 如果我不传 IP 地址会怎样?
答: 该端点会从请求头(X-Forwarded-For)自动检测调用方的 IP。这对服务端查询很有用——你无需显式传入 IP 即可对终端用户进行地理定位。
问: 支持私有 IP 吗?
答: 不支持。私有 IP(如 192.168.x.x、10.x.x.x 等 RFC 1918 段)、回环地址(127.0.0.1)和其他保留段会返回 400 错误。仅支持可公网路由的 IPv4 和 IPv6 地址。
问: 地理定位有多准确?
答: 由 MaxMind GeoLite2-City 提供支持。国家级准确率通常为 95–99%。城市级准确率因地区而异——在北美和欧洲通常可靠,在亚洲和非洲部分地区精度较低。坐标代表的是大致区域,而非精确的物理位置。
问: AI 智能体能将其作为工具使用吗?
答: 可以。该端点接受单个可选的 ip 查询参数并返回扁平的 JSON 对象——易于作为函数工具暴露给 OpenAI、Claude、LangChain 或任意智能体框架。对于需要推理用户位置、执行基于地理位置的规则,或用地区上下文丰富线索数据的智能体非常有用。
在 Claude Code 与 AI 智能体中使用 IP 地理定位
安装官方 Claude Code 技能,直接在你的 AI 编程智能体中对任意 IP 地址进行地理定位——通过自然语言获取国家、城市、ISP、时区等信息。
用自然语言向你的 AI 智能体提问
兼容的平台
用于 APIpick IP 地理定位 API 的 Claude Code 技能
为任意 IP 地址返回国家、大洲、城市、经纬度、IANA 时区、ISO 货币代码、ISP 名称和 ASN。