想在自己的程序里自动查IP归属地——比如用户注册时记录IP对应的城市。手工打开ip138一个个查不现实,得用API。这篇讲几个能用的IP查询API和Python接入方法。
免费API方案
ip-api.com
免费版限每分钟45次请求,返回国家、城市、ISP、经纬度。国内IP数据精度一般,但对日常够用了。
import requests
resp = requests.get('http://ip-api.com/json/8.8.8.8')
data = resp.json()
print(f"国家: {data['country']}, 城市: {data['city']}, ISP: {data['isp']}")ip.sb
极简API。查自己的IP直接 curl ip.sb,查别人IP用 curl ip.sb/8.8.8.8。只返回IP归属地的简短文本,不会返回JSON结构化数据。适合快速检查,不适合需要结构数据的场景。
国内方案
ipip.net
国内IP数据最全。免费版每天500次查询,返回城市、运营商、经纬度。API需要注册获取token:
# ipip.net API示例(需替换YOUR_TOKEN)
headers = {'Token': 'YOUR_TOKEN'}
resp = requests.get('https://user.ipip.net', headers=headers)纯真IP库离线版
如果你的程序不需要联网(内网环境),可以把纯真IP库的离线数据库文件(qqwry.dat)放在服务器上,用Python的 qqwry 库本地查。不需要调用外部API,速度最快,但需要定期手动更新数据库文件。
怎么选
| 场景 | 推荐 |
|---|---|
| 简单自查 | ip.sb(命令行一条搞定) |
| 程序里查归属地 | ip-api.com(免费、有JSON) |
| 国内IP精确查询 | ipip.net(免费额度够日常开发) |
| 内网/高并发/离线 | 纯真离线库(本地查询零延迟) |
更多IP工具看极跃IP资源导航。






