网站域名备案查询 api 接口调用方法介绍

想要调用域名备案查询API,不用把它想得很复杂,本质就是一次HTTP请求,传入域名参数,接口会返回这个域名对应的备案状态以及主体相关信息。市面上可选的接口类型不少,免费和付费版本之间差距明显,调用逻辑也各有区别,下面分开梳理不同方案的使用方式。

免费接口:接口盒子的ICP查询 在各类免费方案里面,接口盒子apihz.cn的ICP备案查询接口使用人群最多。请求地址写为https://cn.apihz.cn/api/wangzhan/icp.php,GET、POST两种提交方式都支持。

接口一共三个必填参数,id是注册账号后分配的用户ID,key为通信密钥,domain填入待查询域名。还有一个可选参数type,用来切换查询通道,取值1或者2,不填写的情况下系统随机分配通道。返回数据采用JSON格式,查询成功示例如下:

网站域名备案查询 api 接口调用方法介绍

{ "code": 200, "icp": "蜀ICP备2020030589号-1", "unit": "绵阳耳关明皿网络科技有限公司", "domain": "erguanmingmin.com", "time": "2021-12-20" }

code 等于 200 代表查询请求执行成功,icp 字段存放备案编号,unit 对应备案主办单位,time 字段记录备案审核通过日期。采用 Python 实现调用的示例代码:python运行


import requests

def query_icp(domain, user_id, user_key): url = "https://cn.apihz.cn/api/wangzhan/icp.php" params = { 'id': user_id, 'key': user_key, 'domain': domain } response = requests.get(url, params=params) data = response.json() if data['code'] == 200: print(f"备案号: {data['icp']}") print(f"主体: {data['unit']}") else: print(f"查询失败: {data['msg']}")

这里有一处容易忽略的细节。接口盒子提供公共测试 ID 与 KEY,数值为88888888,使用这套凭证可以跑通测试请求,但所有使用公共凭证的用户共享调用额度,并发量稍微提升就容易触发限流。自行注册账号获取专属 id 和 key 之后,每日调用没有上限,仅每分钟存在频率限制。另外这套免费接口依托离线数据库抓取数据,备案信息更新速度比不上官方渠道,适合批量核对、非核心业务合规检查这类对实时性要求不高的场景。按量计费的云市场接口 阿里云云市场能找到 ICP 备案查询相关接口,采用标准化 RESTful 设计,返回字段相比免费接口更加丰富。接口地址https://route.showapi.com/846-1?appKey={your_appKey},GET、POST 请求都支持,返回内容为 JSON。domain 属于必填参数,可以放在请求体或者查询参数内。appKey 是订阅服务之后,在控制台获取的鉴权标识。该接口返回内容包含备案主体名称、备案编号、网站名称、备案类型、更新时间、主办地址等,对比免费接口,多出网站名称和备案类型两个关键字段。计费模式按调用次数扣减,平台提供多档资源包。只有 HTTP 返回 200 状态码才会扣除次数,其余状态码不会扣费。价格方面,爱站 API 市场同类服务报价 35 元可调用 5000 次,折算单次成本不足一分钱;凡数 API 平台套餐 399 元支持 26600 次查询,单次单价更低。如果调用体量巨大,接口盒子还提供包月定制方案,1500 元每月,每日大约可执行十万次查询。本地化方案:自行部署查询服务 不想依赖第三方接口的话,可以直接部署 GitHub 上的开源项目。ICP_Query_lite 默认监听http://127.0.0.1:59641,项目启动完成后,直接用 curl 发起查询:bash


curl "http://127.0.0.1:59641/query/web?search=baidu.com"

该项目支持八种查询类别,除网站域名之外,APP、小程序、快应用备案信息同样能够查询。底层读取工信部政务服务平台实时数据,依靠自动识别滑块验证码绕过反爬限制。ICP-spider 是另一款基于 FastAPI 开发的项目,接口设计更加简洁,使用/query?domain=xxx即可完成查询:bash


curl "http://localhost:8000/query?domain=scgzyun.com"

返回完整备案详情,包含主体备案号、服务备案号、主体性质、审核时间等内容。两个项目都需要 Python3.8 及以上运行环境,安装依赖包之后直接启动,适合拥有服务器,希望把查询能力留在内部环境的团队。调用的坑和注意事项 免费接口没办法保证百分百查询成功。接口盒子文档写明,实时查询会受网络、验证码识别效果影响,综合成功率大概在 10% 到 30% 区间。首次查询没有返回结果,可以更换 type 通道重试,更换通道后经常能正常获取数据。传递域名参数的时候,不要附带 http:// 或者 https:// 这类协议前缀,直接传递裸域名,例如apihz.cn,不要写成https://apihz.cn。部分接口自带域名清洗逻辑,自动剔除协议头、路径、端口和 www 前缀,但为了避免报错,最好提前处理干净域名格式。返回数据内的 code 字段需要留意。200 代表查询成功,400 代表参数错误或者鉴权失败,这两类问题需要分开排查。400 报错大多是 id、key 填写错误,或是域名格式不符合规范。如果 code 返回 200,但是 icp 字段为空,代表这个域名本身没有备案记录,不是接口故障。备案查询选择上,只需要匹配自身调用规模和实时性需求。少量临时查询,接口盒子免费版本足够使用。接入业务系统长期调用,按量付费的云市场接口稳定性更好。手里有服务器资源,想要完全自主掌控,部署开源项目是更合适的选择。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐