在网站建设、网络营销或安全审计等场景中,查询一个域名的ICP备案信息是常见的需求。ICP备案号是中国大陆网站合法运营的重要标识,包含了主办单位性质、备案号、审核时间等关键信息。本文将详细介绍免费ICP备案查询API接口,帮助开发者快速、低成本地将此功能集成到自己的应用或系统中。
一、接口核心概述
这是一个完全免费的API接口,旨在帮助开发者查询指定域名的ICP备案信息。
-
核心功能:传入一个域名,返回其备案详情,包括主体性质、备案号、主办单位、审核时间等。
-
重要提示:
-
离线库查询:该接口基于离线数据库进行查询,信息更新可能不如官方实时接口及时。适合对时效性要求不高的场景。
-
免费与限制:接口本身免费,但调用有频次限制。使用公共ID和KEY将共享全局频次限制,强烈建议注册账号获取独享的ID和KEY以保证服务稳定性。
-
优享版:如果需要实时、高并发的查询服务,网站提供了付费的“优享版”接口。
-
二、接口请求详情
-
请求地址:
https://cn.apihz.cn/api/wangzhan/icp.php -
请求方式: 支持 GET 和 POST。
-
请求参数:
|
名称 |
参数 |
是否必填 |
说明 |
|---|---|---|---|
|
用户ID |
|
是 |
在用户中心获取的数字ID。 |
|
用户KEY |
|
是 |
在用户中心获取的通讯秘钥,用于鉴权。 |
|
域名 |
|
是 |
要查询的域名,不需要带 |
三、返回参数与示例
接口返回统一格式的JSON数据。
-
成功响应示例 (HTTP Status Code: 200)
当查询成功时,会返回完整的备案信息。
json
json
复制
{ "code": 200, "td": "1-1", "type": "企业", "icp": "蜀ICP备2020030589号-10", "unit": "绵阳耳关明皿网络科技有限公司", "domain": "apihz.cn", "time": "2024-04-01" } -
失败响应示例 (HTTP Status Code: 400)
当参数错误或鉴权失败时,返回错误信息。
json
json
复制
{ "code": 400, "msg": "通讯秘钥错误。" } -
返回参数说明:
-
code: 状态码。200表示成功,400表示失败。 -
msg: 当code为400时的错误描述。 -
type: 备案主体性质,如“个人”、“企业”。 -
icp: 工信部颁发的备案许可证号。 -
unit: 备案的主办单位名称。*-
domain: 查询的域名。 -
time: 备案审核通过的日期。
-
四、调用示例(含代码)
以下示例将演示如何使用GET和POST方式进行调用。请务必将示例中的 id和 key替换为您在 接口盒子官网注册后获得的独享凭证。
公共测试凭证(频次受限,仅用于测试):
-
id: 88888888 -
key: 88888888
1. 浏览器直接访问(GET)
最简单的方式是将参数直接拼接在URL后,在浏览器地址栏中访问。
复制
https://cn.apihz.cn/api/wangzhan/icp.php?id=88888888&key=88888888&domain=apihz.cn
访问后,浏览器将直接显示JSON格式的查询结果。
2. PHP调用示例
以下代码演示了在PHP中使用cURL库进行GET请求。
php
php
复制
<?php
// 配置您的API凭证和要查询的域名
$id = '88888888'; // 请替换为您的用户ID
$key = '88888888'; // 请替换为您的用户KEY
$domain = 'apihz.cn';
// 构建请求URL
$api_url = "https://cn.apihz.cn/api/wangzhan/icp.php";
$request_url = $api_url . "?id=" . urlencode($id) . "&key=" . urlencode($key) . "&domain=" . urlencode($domain);
// 初始化cURL会话
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将响应结果返回,而不是直接输出
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL证书验证(生产环境建议设为true)
// 执行请求并获取响应
$response = curl_exec($ch);
// 检查请求是否成功
if (curl_errno($ch)) {
die('cURL请求发生错误: ' . curl_error($ch));
}
// 关闭cURL资源
curl_close($ch);
// 解析JSON响应
$data = json_decode($response, true);
// 处理返回数据
if ($data['code'] == 200) {
// 查询成功,打印备案信息
echo "查询成功!<br/>";
echo "域名: " . $data['domain'] . "<br/>";
echo "备案号: " . $data['icp'] . "<br/>";
echo "主办单位: " . $data['unit'] . "<br/>";
echo "主体性质: " . $data['type'] . "<br/>";
echo "审核时间: " . $data['time'] . "<br/>";
} else {
// 查询失败,打印错误信息
echo "查询失败: " . $data['msg'];
}
?>
3. Python调用示例
以下代码演示了在Python中使用流行的 requests库进行GET请求。
python
python
下载
复制
import requests
# 配置您的API凭证和要查询的域名
id = '88888888' # 请替换为您的用户ID
key = '88888888' # 请替换为您的用户KEY
domain = 'apihz.cn'
# 构建请求URL和参数
api_url = "https://cn.apihz.cn/api/wangzhan/icp.php"
params = {
'id': id,
'key': key,
'domain': domain
}
try:
# 发送GET请求
response = requests.get(api_url, params=params)
# 解析JSON响应
data = response.json()
# 处理返回数据
if data['code'] == 200:
# 查询成功,打印备案信息
print("查询成功!")
print(f"域名: {data['domain']}")
print(f"备案号: {data['icp']}")
print(f"主办单位: {data['unit']}")
print(f"主体性质: {data['type']}")
print(f"审核时间: {data['time']}")
else:
# 查询失败,打印错误信息
print(f"查询失败: {data['msg']}")
except requests.exceptions.RequestException as e:
# 处理网络请求异常
print(f"网络请求出错: {e}")
except ValueError as e:
# 处理JSON解析异常
print(f"解析响应数据出错: {e}")
五、使用流程与注意事项
-
注册账号
-
获取凭证:在用户中心找到您的独享
id和key。 -
集成测试:使用您的独享凭证替换上述示例代码中的测试凭证,进行集成测试。
-
注意事项:
-
遵守频次限制:请遵守接口的调用频率限制,避免过度频繁的请求。
-
错误处理:在生产环境中,务必添加完善的错误处理逻辑(如网络异常、API返回错误等)。
-
数据准确性:由于是离线库,若查询结果与官方信息有出入,应以工信部备案系统为准。
-
3593

被折叠的 条评论
为什么被折叠?



