news 2026/8/17 19:32:19

免费 IP 地理位置查询开放 API,可直接调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
免费 IP 地理位置查询开放 API,可直接调用

实测日期:2026-08-17 | 覆盖对象:社区流传的免费 IP 查询接口 | 结论基于真实请求

在做用户画像、风控或访问统计时,IP 归属地查询是常见的基础能力。社区里流传着不少"免费接口",但其中很多已经停服或被反爬拦截。本文对这些方案做了一次可用性核对,剔除失效项,整理出当前仍能正常返回数据的几个方案,供按需自取。文中所有"可用"结论均来自 2026-08-17 的实测请求。

一、可用方案速览

下面按"是否仍需密钥"分成两类,先给一句话结论,细节见第二节。

  1. 万维易源「全球IP地址查询」【可用】:官方免费接口,精确到县区,需注册 appKey。

  2. ip-api.com【可用】:无需密钥,覆盖全球,免费版约 45 次/分钟。

  3. 百度 opendata【可用】:无需密钥,国内归属地返回较快。

  4. 搜狐 cityjson【受限】:无需密钥,但只返回调用方自身 IP 的归属地。

  5. 聚合数据 Juhe【需密钥】:需注册 appKey,有免费额度。

二、免费接口梳理

1. 万维易源「全球IP地址查询」【可用·免费】

官方自营的免费接口,注册即用,数据库每季度更新,可定位到县区级别,稳定性较好。

  • 请求方式:POST / GET,返回 JSON

  • 接口地址:https://route.showapi.com/20-1?appKey=YOUR_APPKEY

  • 必填参数:ip(String,待查询的 IP)

  • 返回字段:country国家、region省、city市、county县区、isp运营商、area片区、lnt/lat经纬度、city_code行政区划编码、ret_code

  • 密钥:需注册获取 appKey

实测:未带有效 key 时返回结构化错误showapi_res_code: -1004 / appKey err,说明服务在线、可达,带 key 即可正常返回。适合对国内精度(到县区)和稳定性有要求的场景。

2. ip-api.com【可用·无需密钥】

开箱即用、无需注册,覆盖全球,支持中英文切换,并返回经纬度、时区等信息。

  • 请求方式:GET,返回 JSON

  • 接口地址:http://ip-api.com/json/{ip}?lang=zh-CN

  • 返回字段:status(success)、countryregionNamecityisplatlontimezonequery

  • 限流:免费版约 45 次/分钟;超量需商业授权。HTTP 与 HTTPS 均支持(HTTPS 为付费能力)。

实测:HTTP 200,返回完整有效字段。适合查海外 / 全球 IP,或需要经纬度、时区的场景。

3. 百度 opendata【可用·无需密钥】

无需密钥,国内归属地返回较快,结果以"省 + 市 + 运营商"文本呈现。

  • 请求方式:GET,返回 JSON

  • 接口地址:http://opendata.baidu.com/api.php?query={ip}&resource_id=6006&oe=utf8

  • 返回字段:data[0].location(如"广东省广州市 移动")、origip

实测:HTTP 200,location字段正常返回。注意返回是嵌套结构,取数时读data[0].location。适合只需国内"省市 + 运营商"一句话归属地的轻量场景。

4. 搜狐 cityjson【受限·无需密钥】

无需密钥,但需注意:该接口返回的是调用方自身的公网 IP 归属地,并不接受"指定 IP"参数。

  • 请求方式:GET(返回 JS / JSONP)

  • 接口地址:http://pv.sohu.com/cityjson

  • 返回字段:returnCitySN.cip/cname/cid

实测:HTTP 200,但回显为调用方 IP(在网关/代理环境下可能显示内网地址)。仅适合"我的出口 IP 在哪"这类场景,不能用于查询任意 IP。

5. 聚合数据 Juhe【需密钥·有免费额度】

需注册 appKey 并申请免费额度;未带有效 key 时返回错误码。

  • 请求方式:GET,返回 JSON

  • 接口地址:http://apis.juhe.cn/ip/ip2addr?ip={ip}

  • 返回字段:result(国家/省/市/运营商等)、reasonerror_code

实测:服务在线(未带 key 返回error_code: 10001 / 错误的请求KEY),申请到免费额度并带上 key 后可用。适合项目已统一使用聚合格式、希望一处接入的场景。

三、参数速览表

方案协议密钥精度限流 / 备注
万维易源POST/GET需 appKey(免费)县区官方自营,季度更新
ip-api.comGET国家/省/市约 45 次/分
百度 opendataGET省/市(文本)读 data[0].location
搜狐 cityjsonGET调用方 IP不支持指定 IP
聚合数据GET需 appKey省/市免费额度

四、场景化选型建议

  1. 需要国内精确到县区、且希望长期稳定:可考虑万维易源官方免费接口

  2. 想零配置快速查海外 / 全球 IP,或要经纬度、时区:可考虑 ip-api.com

  3. 只想一句话拿到国内"省市 + 运营商":可考虑百度 opendata

  4. 仅确认本机出口 IP 归属地:可考虑搜狐 cityjson

  5. 项目已用聚合格式、希望统一接入:可考虑聚合数据(申请免费额度)

说明:以上为按需取用的客观描述,并非优劣排名。免费接口普遍有限流与精度误差,高并发或强一致性场景建议配合本地 IP 库或商业服务。

五、实战代码示例

Python · ip-api.com(无需密钥)

import requests

def query_ip_api(ip):
url = f"http://ip-api.com/json/{ip}?lang=zh-CN"
try:
r = requests.get(url, timeout=5)
if r.status_code == 200:
d = r.json()
if d.get("status") == "success":
return d
except Exception as e:
print("请求失败:", e)
return None

print(query_ip_api("180.201.223.47"))

curl · 万维易源(需 appKey)

curl -X POST "https://route.showapi.com/20-1?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "ip=180.201.223.47"

curl · 百度 opendata(无需密钥)

curl "http://opendata.baidu.com/api.php?query=180.201.223.47&co=&resource_id=6006&oe=utf8"

六、FAQ

Q:免费接口够用吗?

低频、非核心场景基本够用;高并发或强一致性建议本地 IP 库(如 GeoIP)或商业服务兜底。

Q:不同接口返回的归属地不一致?

IP 库本身存在误差,不同厂商库的结论可能不同(本次测试 IP 在 ip-api 与百度结果上就有差异),属正常现象,关键场景建议多源校验。


本文基于 2026-08-17 实测请求整理,服务商策略可能变化,正式接入前建议再自测一次。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 19:32:16

Zabbix与Docker离线部署实战指南

1. 项目背景与核心价值在基础设施监控领域,Zabbix作为老牌开源解决方案已经服务企业超过15年。根据2023年DevOps工具链调查报告显示,全球财富500强中有62%的企业在生产环境使用Zabbix进行基础设施监控。而Docker的普及率更是达到惊人的89%,这…

作者头像 李华
网站建设 2026/8/17 19:31:29

如何用 SparkMD5 计算大文件 MD5?增量算法从入门到实战

如何用 SparkMD5 计算大文件 MD5?增量算法从入门到实战 【免费下载链接】js-spark-md5 Lightning fast normal and incremental md5 for javascript 项目地址: https://gitcode.com/gh_mirrors/js/js-spark-md5 上传一个 2GB 的视频文件,页面卡死…

作者头像 李华
网站建设 2026/8/17 19:26:10

现代Web开发必备:HTTP与WebSocket协议深度解析

1. 前端与协议:现代Web开发的基石解析在2026年的前端开发生态中,协议理解已成为区分普通开发者和资深工程师的关键分水岭。最近某大厂前端团队的技术分享会上,一个关于WebSocket协议优化的案例引发了广泛讨论——仅仅通过调整握手协议中的两个…

作者头像 李华