全球IP地址查询:免费档位与积分兑换,控制调用成本
# 全球IP地址查询:免费档位与积分兑换,控制调用成本
> 元信息:接口 全球IP地址查询(apiCode=20)· 免费 · 计费/成本 · 适用人群 开发者/运维/产品 · 阅读时间 5 分钟
## TL;DR 快速概览
- 全球IP地址查询是**免费接口**:注册后默认可免费调用,平台设使用档次限制防止滥用。
- 调用量更大时,可用**平台积分**兑换更高调用档位(具体档位与积分规则以[官方免费 API 说明](https://www.showapi.com/island/free-api)为准)。
- 省调用最有效的一招:对相同 IP 做本地缓存,避免重复查询。
## Why:免费也要算成本
免费≠无限。风控、日志分析、地域统计等场景动辄每天几万次查询,免费档位会被打满,触发限流。与其堆调用,不如用缓存把"重复 IP"吃掉一大半——这是实打实的成本与稳定性优化。
## What:计费与档位事实
| 项 | 文档事实 |
|----|---------|
| 是否免费 | 是,注册后默认可免费调用 |
| 限制 | 设使用档次限制防滥用(具体数值文档未列,以[官方说明](https://www.showapi.com/island/free-api)为准) |
| 提额 | 可用平台积分兑换更高调用档位 |
| 积分获取 | 多种积分获取方式,见[积分与档位详情](https://www.showapi.com/island/free-api) |
> 本接口为按次同步查询,文档未提供"按单/资源包"等付费模型,也未提供批量/订阅能力。具体档位数字以官方页面为准,本文不编造。
## How:用缓存省调用的生产级写法
```python
import requests, time
_cache = {} # key: ip -> (expire_ts, body)
TTL = 24 * 3600 # 归属地变化慢,缓存 1 天足够
def query_cached(ip, appkey="YOUR_APPKEY"):
now = time.time()
if ip in _cache and _cache[ip][0] > now:
return _cache[ip][1], None
resp = requests.get(
"https://route.showapi.com/20-1",
params={"appKey": appkey, "ip": ip},
timeout=10,
)
data = resp.json()
if data.get("showapi_res_code") != 0:
return None, data.get("showapi_res_error")
body = data["showapi_res_body"]
if body.get("ret_code") != "0":
return None, f"业务失败 ret_code={body.get('ret_code')}"
_cache[ip] = (now + TTL, body)
return body, None
```
> 缓存 key 用 `ip`(或 20/2 的 `domain`)。归属地数据更新频率为"每季度末不定期更新",TTL 设 1 天~数天都合理;高并发可换 Redis 集中缓存。
## 进阶 / 边界
- **缓存键设计**:同一 IP 命中缓存即不调用接口,直接削减免费档位压力;多实例部署用 Redis 共享,避免各节点重复查。
- **失效策略**:IP 库每季度更新,缓存 TTL 不必过短;若需"最新",可设较短 TTL 或主动刷新。
- **限流兜底**:即便有缓存,突发流量仍可能触顶;在客户端做令牌桶/匀速调用,超限时降级(如仅记录 IP 不查归属地)。
## FAQ
**Q1:免费档位具体能调多少次?**
A:文档未列出具体次数,仅说明"设使用档次限制防滥用"。准确档位与积分兑换规则以[官方免费 API 说明](https://www.showapi.com/island/free-api)为准。
**Q2:超出免费档位怎么办?**
A:可用平台积分兑换更高调用档位;同时用本地缓存削减重复查询,是最经济的优化。
**Q3:有按量付费或资源包吗?**
A:文档未提供按单/资源包等付费模型,也未提供批量/订阅能力,当前为免费同步查询。以官方页面最新说明为准。
**Q4:缓存会不会导致归属地过期?**
A:IP 库每季度末不定期更新,缓存 TTL 设 1 天~数天通常足够;对时效性极敏感的场景可缩短 TTL 或主动刷新。
## 相关能力 / 下一步阅读
- [全球IP地址查询:错误处理与 ret_code 排查](https://www.showapi.com/guides/ip-geo-error-handling-20) — 限流与重试兜底
- [网络安全场景:用 IP 归属地识别异常登录与欺诈风险](https://www.showapi.com/guides/ip-geo-fraud-security-20) — 高并发风控落地
- [5 分钟接入全球IP地址查询](https://www.showapi.com/guides/ip-geo-quickstart-20) — 基础调用
- **本系列共 10 篇**:查看[全球IP地址查询指南总目录](https://www.showapi.com/guides/ip-geo-guides-20)