一、接口是什么
PING 接口-PLUS 全球版是一个第三方 Ping 探测 API ,由接口盒子自研并发多线检测协议,调度全球 20+ 国家、数十个检测节点 对你指定的 IP / 域名发起 Ping,一般 3--15 秒即可返回各地节点的延时结果。
相比自己在服务器上 ping一下,它的核心价值是:
- ✅ 视角全球化 ------ 全球20多个检测点
- ✅ 可定向 ------ 支持
dy参数指定单个城市节点,也支持dy=0一次性拉全节点 - ✅ 附带地理/IP 情报 ------ 返回目标 IP、实际 host、所属运营商、经纬度;
二、请求说明
- 请求地址 :https://cn.apihz.cn/api/wangzhan/pingplus.php
- 请求方式:GET 或 POST 均可
- 超时建议:单次请求 ≥ 20 秒(因为要等全球节点并发回包)
请求参数
| 参数 | 必填 | 说明 |
|---|---|---|
| id | ✅ | 用户中心的数字 ID,例:10000000 |
| key | ✅ | 用户中心通讯秘钥 |
| host | ✅ | 要 Ping 的目标 IP 或域名,域名不要带 http:// ,例:www.apihz.cn |
| dy | ❌ | 检测地域编号,默认 0(所有节点)。10001=,10002=国外,10003=获取地域列表 |
四、返回数据结构
最外层:
json
json
{
"code": 200, // 200 成功,400 错误
"msg": "信息提示",
"datas": [ ... ] // 各节点 Ping 结果数组
}
datas[]单节点核心字段:
| 字段 | 含义 |
|---|---|
code |
节点级状态码,200 / 400 |
totime |
Ping 延时(ms),因节点负载/网络波动建议多次取参考 |
tohost |
目标 host |
torealhost |
目标实际解析 host(CNAME 链终点) |
toip |
目标 IP |
jdxlmsg |
检测节点线路描述,如"中国-上海-BGP-2" |
五、调用示例
下面用示例域名 www.apihz.cn演示,请把 id/ key换成你自己的。
1️⃣ GET 调用(浏览器 / curl 都能测)
bash
bash
curl "https://cn.apihz.cn/api/wangzhan/pingplus.php?id=88888888&key=88888888&dy=0&host=www.apihz.cn"
dy=0会触发全球全节点并发,返回几十个节点的 datas[]。
2️⃣ PHP 示例(cURL GET)
php
php
<?php
/**
* PING 接口 PLUS 全球版 - PHP 调用示例
*/
$api = 'https://cn.apihz.cn/api/wangzhan/pingplus.php';
$id = '你的ID';
$key = '你的KEY';
$host = 'www.apihz.cn';
$dy = 0; // 0=全节点, 也可换 1/2/100/923 等
$url = $api . '?id=' . $id . '&key=' . $key . '&dy=' . $dy . '&host=' . $host;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 25); // 建议 ≥20 秒
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['code'] == 200) {
foreach ($data['datas'] as $node) {
printf(
"%-22s | %s ms | IP:%s\n",
$node['jdxlmsg'],
$node['totime'],
$node['toip']
);
}
} else {
echo '接口错误:' . $data['msg'] . PHP_EOL;
}
如果要走 POST ,把 curl_setopt($ch, CURLOPT_POST, true)加上,参数放 CURLOPT_POSTFIELDS即可,逻辑一样。
3️⃣ Python 示例(requests)
python
python
"""
PING 接口 PLUS 全球版 - Python 调用示例
pip install requests
"""
import requests
API = "https://cn.apihz.cn/api/wangzhan/pingplus.php"
ID = "你的ID"
KEY = "你的KEY"
HOST = "www.apihz.cn"
DY = 0
params = {
"id": ID,
"key": KEY,
"host": HOST,
"dy": DY
}
r = requests.get(API, params=params, timeout=25)
r.raise_for_status()
data = r.json()
if data["code"] == 200:
print(f"目标 {HOST} 全球 Ping 结果:\n")
for node in data["datas"]:
if node["code"] == 200:
print(
f"{node['jdxlmsg']:<22s}"
f" | {node['totime']:>4s} ms"
f" | IP:{node['toip']}"
)
else:
print(f"{node.get('jdxlmsg','--')} 失败:{node.get('msg','')}")
else:
print("接口错误:", data["msg"])
六、几个容易踩的坑
- 超时别设太短 ------ 全球节点并发回包慢,接口方建议调用侧超时 >20 秒 ,否则可能拿到半截或空
datas - 域名别带协议头 ------
host=https://www.xxx.com❌,host=www.xxx.com✅
七、一句话定位
如果你需要一个不用自己布海外机、又能一次性看全球几十个点 Ping 延迟的接口,这个 PLUS 版算是免费 API 里节点覆盖比较全的一档,PHP / Python 几行就能接进监控脚本,做站点出海前的网络摸底挺合适。