一、接口是什么
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,例: |
key | ✅ | 用户中心通讯秘钥 |
host | ✅ | 要 Ping 的目标 IP 或域名,域名不要带 http://,例: |
dy | ❌ | 检测地域编号,默认 |
四、返回数据结构
最外层:
json
json
{ "code": 200, // 200 成功,400 错误 "msg": "信息提示", "datas": [ ... ] // 各节点 Ping 结果数组 }datas[]单节点核心字段:
字段 | 含义 |
| 节点级状态码,200 / 400 |
| Ping 延时(ms),因节点负载/网络波动建议多次取参考 |
| 目标 host |
| 目标实际解析 host(CNAME 链终点) |
| 目标 IP |
| 检测节点线路描述,如"中国-上海-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 几行就能接进监控脚本,做站点出海前的网络摸底挺合适。