net.ping 
此模块用于检测主机网络的连通性和延迟。
提示
使用此模块需要先导入:import("net.ping")
net.ping 模块提供了跨平台的主机 Ping 检测功能。它会自动查找系统可用的工具(优先 curl,然后 wget,最后 ping),并使用合适的参数进行检测。
ping 
- 对主机列表执行 Ping 检测
函数原型 
API
lua
ping(hosts, opt?)参数说明 
| 参数 | 描述 | 
|---|---|
| hosts | 必需。主机地址字符串或主机地址数组 | 
| opt | 可选。选项参数表,支持: - force- 是否强制刷新缓存(默认为 false) | 
返回值说明 
| 类型 | 描述 | 
|---|---|
| table | 返回主机地址到延迟时间的映射表,单位为毫秒,失败或无响应时返回 65535 | 
用法说明 
对单个主机进行 Ping 检测:
lua
import("net.ping")
local results = ping("github.com")
print("延迟:", results["github.com"], "ms")对多个主机进行 Ping 检测:
lua
import("net.ping")
local results = ping({"github.com", "gitlab.com", "git.com"})
for host, time in pairs(results) do
    print(host, ":", time, "ms")
end强制刷新缓存重新检测:
lua
import("net.ping")
-- 不读取缓存,强制重新检测
local results = ping({"github.com", "gitlab.com"}, {force = true})net.ping 模块支持多种检测方式:
- 使用 curl:如果系统安装了 curl,会使用 curl命令检测(返回值为毫秒)
- 使用 wget:如果未安装 curl,会尝试使用 wget命令检测(返回值为毫秒)
- 使用 ping:如果前两者都不可用,会使用系统的 ping命令检测(Windows/macOS/Linux 的参数不同)
检测结果会被缓存,后续请求会直接使用缓存结果,除非设置了 force = true。支持并发生检测以提高效率。以下是一个完整的示例:
lua
import("net.ping")
-- 检测多个镜像源的延迟
local mirrors = {
    "github.com",
    "gitee.com", 
    "code.csdn.net"
}
print("正在检测镜像源延迟...")
local results = ping(mirrors)
-- 找出延迟最低的镜像源
local best_mirror = nil
local min_time = math.maxinteger
for host, time in pairs(results) do
    print(string.format("%s: %d ms", host, math.floor(time)))
    if time < min_time then
        min_time = time
        best_mirror = host
    end
end
if best_mirror then
    print(string.format("\n最快镜像源: %s (延迟: %d ms)", best_mirror, math.floor(min_time)))
else
    print("未找到可用镜像源")
end