批量检测 API

一次对最多 10 个目标做 TCPing、网站可用性检测或 Ping,返回每个目标的结果与汇总(按目标数计调用次数)

数据来源:本服务器发起的连接

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

批量 TCPing:一次检测最多 10 个主机端口的连通性与延迟

GET /api/batch/tcping

请求参数

  • targets(必填):目标列表,逗号分隔;每项为域名、IP、host:port 或 [IPv6]:port,不写端口时用 port 参数。最多 10 个(去重后),每个目标计 1 次调用次数。不允许内网和保留地址,示例 github.com,1.1.1.1:53,[2606:4700::1111]:443
  • port:目标未写端口时使用的端口,1~65535,示例 443
  • count:每个目标的测试次数,1~4,示例 2

返回字段

  • count(number):每个目标的测试次数
  • items(array):每个目标的结果,顺序与输入一致(已去重);单个目标失败不影响其他目标
  • items[].target(string):输入的目标(原样)
  • items[].host(string|null):解析出的主机(ASCII 域名或 IP);目标格式不合法时为 null
  • items[].ip(string|null):实际连接的 IP;失败于解析或检查阶段时为 null
  • items[].port(number|null):测试的端口;目标格式不合法时可能为 null
  • items[].ok(boolean):是否至少有一次成功建立 TCP 连接
  • items[].sent(number):发出的连接次数;目标不合法或被拒绝时为 0
  • items[].received(number):成功次数
  • items[].lossRate(number):丢失率(百分比,0~100);未发出时为 100
  • items[].min(number|null):最小耗时(毫秒);全部失败时为 null
  • items[].max(number|null):最大耗时(毫秒);全部失败时为 null
  • items[].ms(number|null):成功连接的平均耗时(毫秒);全部失败时为 null
  • items[].error(string|null):失败原因(格式不合法、不允许访问内网或保留地址、连接被拒绝、连接超时、同类检测请求过多等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null

批量 TCPing:一次检测最多 10 个主机端口的连通性与延迟(JSON 请求体)

POST /api/batch/tcping

请求参数

  • targets(必填):目标列表,字符串数组(也可以是逗号分隔的字符串);每项为域名、IP、host:port 或 [IPv6]:port,不写端口时用 port 参数。最多 10 个(去重后),每个目标计 1 次调用次数。不允许内网和保留地址,示例 github.com,1.1.1.1:53
  • port:目标未写端口时使用的端口,1~65535,示例 443
  • count:每个目标的测试次数,1~4,示例 2

返回字段

  • count(number):每个目标的测试次数
  • items(array):每个目标的结果,顺序与输入一致(已去重);单个目标失败不影响其他目标
  • items[].target(string):输入的目标(原样)
  • items[].host(string|null):解析出的主机(ASCII 域名或 IP);目标格式不合法时为 null
  • items[].ip(string|null):实际连接的 IP;失败于解析或检查阶段时为 null
  • items[].port(number|null):测试的端口;目标格式不合法时可能为 null
  • items[].ok(boolean):是否至少有一次成功建立 TCP 连接
  • items[].sent(number):发出的连接次数;目标不合法或被拒绝时为 0
  • items[].received(number):成功次数
  • items[].lossRate(number):丢失率(百分比,0~100);未发出时为 100
  • items[].min(number|null):最小耗时(毫秒);全部失败时为 null
  • items[].max(number|null):最大耗时(毫秒);全部失败时为 null
  • items[].ms(number|null):成功连接的平均耗时(毫秒);全部失败时为 null
  • items[].error(string|null):失败原因(格式不合法、不允许访问内网或保留地址、连接被拒绝、连接超时、同类检测请求过多等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null

批量网站检测:一次检测最多 10 个网址的状态码与响应时间

GET /api/batch/http

请求参数

  • urls(必填):网址列表,逗号或空白分隔(网址本身含逗号时请写成 %2C 或改用 POST);没写协议的按 https:// 处理。最多 10 个(去重后),每个目标计 1 次调用次数。只允许公网地址,每一跳跳转都会检查,示例 https://github.com,https://example.com

返回字段

  • items(array):每个网址的结果,顺序与输入一致(已去重);单个失败不影响其他网址
  • items[].target(string):输入的网址(原样)
  • items[].ok(boolean):是否可正常访问(最终状态码为 2xx / 3xx)
  • items[].url(string|null):实际检测的起始网址(补全协议、规范化后);格式不合法时为 null
  • items[].finalUrl(string|null):跟随跳转(最多 5 次)后的最终网址;请求失败时为 null
  • items[].reachable(boolean):是否收到了 HTTP 响应(4xx / 5xx 也算收到)
  • items[].status(number|null):最终 HTTP 状态码;请求失败时为 null
  • items[].statusText(string|null):状态码的中文说明;请求失败时为 null
  • items[].redirects(number|null):跳转次数;请求失败时为 null
  • items[].ip(string|null):最终连接的服务器 IP;取不到时为 null
  • items[].ms(number|null):总耗时(毫秒):含全部跳转与下载(最多 1MB);请求失败时为 null
  • items[].ttfb(number|null):最终那一跳的首字节时间(毫秒);请求失败时为 null
  • items[].https(boolean|null):最终网址是否为 HTTPS;请求失败时为 null
  • items[].certValid(boolean|null):证书是否可信;http 网址或请求失败时为 null
  • items[].server(string|null):响应头 Server 的原值;没有或请求失败时为 null
  • items[].error(string|null):失败原因(格式不合法、内网地址、无法解析、超时、HTTP 4xx/5xx 等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null

批量网站检测:一次检测最多 10 个网址的状态码与响应时间(JSON 请求体)

POST /api/batch/http

请求参数

  • urls(必填):网址列表,字符串数组(也可以是逗号分隔的字符串);没写协议的按 https:// 处理。最多 10 个(去重后),每个目标计 1 次调用次数。只允许公网地址,每一跳跳转都会检查,示例 https://github.com,https://example.com

返回字段

  • items(array):每个网址的结果,顺序与输入一致(已去重);单个失败不影响其他网址
  • items[].target(string):输入的网址(原样)
  • items[].ok(boolean):是否可正常访问(最终状态码为 2xx / 3xx)
  • items[].url(string|null):实际检测的起始网址(补全协议、规范化后);格式不合法时为 null
  • items[].finalUrl(string|null):跟随跳转(最多 5 次)后的最终网址;请求失败时为 null
  • items[].reachable(boolean):是否收到了 HTTP 响应(4xx / 5xx 也算收到)
  • items[].status(number|null):最终 HTTP 状态码;请求失败时为 null
  • items[].statusText(string|null):状态码的中文说明;请求失败时为 null
  • items[].redirects(number|null):跳转次数;请求失败时为 null
  • items[].ip(string|null):最终连接的服务器 IP;取不到时为 null
  • items[].ms(number|null):总耗时(毫秒):含全部跳转与下载(最多 1MB);请求失败时为 null
  • items[].ttfb(number|null):最终那一跳的首字节时间(毫秒);请求失败时为 null
  • items[].https(boolean|null):最终网址是否为 HTTPS;请求失败时为 null
  • items[].certValid(boolean|null):证书是否可信;http 网址或请求失败时为 null
  • items[].server(string|null):响应头 Server 的原值;没有或请求失败时为 null
  • items[].error(string|null):失败原因(格式不合法、内网地址、无法解析、超时、HTTP 4xx/5xx 等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null

批量 ICMP Ping:一次检测最多 10 个主机的延迟与丢包

GET /api/batch/ping

请求参数

  • targets(必填):目标列表,逗号分隔;每项为域名或 IP。最多 10 个(去重后),每个目标计 1 次调用次数。只 ping 公网地址,示例 1.1.1.1,8.8.8.8,github.com
  • count:每个目标的发送次数,1~4,示例 2

返回字段

  • count(number):每个目标的发送次数
  • items(array):每个目标的结果,顺序与输入一致(已去重);单个失败不影响其他目标
  • items[].target(string):输入的目标(原样)
  • items[].host(string|null):解析出的主机(ASCII 域名或 IP);格式不合法时为 null
  • items[].ip(string|null):实际 ping 的 IP;失败于解析或检查阶段时为 null
  • items[].ok(boolean):是否至少收到一次回复
  • items[].sent(number):发出的ICMP 包次数;目标不合法或被拒绝时为 0
  • items[].received(number):成功次数
  • items[].lossRate(number):丢失率(百分比,0~100);未发出时为 100
  • items[].min(number|null):最小耗时(毫秒);全部失败时为 null
  • items[].max(number|null):最大耗时(毫秒);全部失败时为 null
  • items[].ms(number|null):平均往返时间(毫秒);全部丢包时为 null
  • items[].ttl(number|null):第一个回复包的 TTL;未收到回复时为 null
  • items[].error(string|null):失败原因(格式不合法、内网地址、全部超时、服务器不支持 ICMP Ping 等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null

批量 ICMP Ping:一次检测最多 10 个主机的延迟与丢包(JSON 请求体)

POST /api/batch/ping

请求参数

  • targets(必填):目标列表,字符串数组(也可以是逗号分隔的字符串);每项为域名或 IP。最多 10 个(去重后),每个目标计 1 次调用次数。只 ping 公网地址,示例 1.1.1.1,8.8.8.8,github.com
  • count:每个目标的发送次数,1~4,示例 2

返回字段

  • count(number):每个目标的发送次数
  • items(array):每个目标的结果,顺序与输入一致(已去重);单个失败不影响其他目标
  • items[].target(string):输入的目标(原样)
  • items[].host(string|null):解析出的主机(ASCII 域名或 IP);格式不合法时为 null
  • items[].ip(string|null):实际 ping 的 IP;失败于解析或检查阶段时为 null
  • items[].ok(boolean):是否至少收到一次回复
  • items[].sent(number):发出的ICMP 包次数;目标不合法或被拒绝时为 0
  • items[].received(number):成功次数
  • items[].lossRate(number):丢失率(百分比,0~100);未发出时为 100
  • items[].min(number|null):最小耗时(毫秒);全部失败时为 null
  • items[].max(number|null):最大耗时(毫秒);全部失败时为 null
  • items[].ms(number|null):平均往返时间(毫秒);全部丢包时为 null
  • items[].ttl(number|null):第一个回复包的 TTL;未收到回复时为 null
  • items[].error(string|null):失败原因(格式不合法、内网地址、全部超时、服务器不支持 ICMP Ping 等);成功时为 null
  • summary(object):汇总
  • summary.total(number):目标数(去重后)
  • summary.success(number):成功的目标数(ok 为 true)
  • summary.failed(number):失败的目标数
  • summary.fastest(object|null):成功目标中耗时最短的一个;全部失败时为 null
  • summary.fastest.target(string):目标(原样)
  • summary.fastest.ms(number):耗时(毫秒),含义同 items[].ms
  • summary.slowest(object|null):成功目标中耗时最长的一个;全部失败时为 null
  • summary.slowest.target(string):目标(原样)
  • summary.slowest.ms(number):耗时(毫秒)
  • summary.avg(number|null):成功目标 ms 的平均值(毫秒,保留两位小数);全部失败时为 null