1015 B
1015 B
nettest
网络连通性测试:TCP 端口探测与原始 ICMP Ping,持续统计成功率与延迟, 适合做线路质量监控探针。
迁移自 go-hua/nettest,代码保持原样。
用法
import "git.zeroonesoft.cn/golib/zogo/nettest"
// 单次 Ping(addr 支持 IP 或域名)
p := nettest.NewPing("192.168.1.1", 0, 1000) // port=0 表示纯 ICMP
ok := p.Test() // true/false
// 持续探测任务:TCP(echo=false 只测端口) / ICMP,后台 goroutine 运行
nt := nettest.NewNetTest(1, "gateway", "192.168.1.1", 80, 1000, false)
nt.Start()
defer nt.Stop()
time.Sleep(time.Minute)
res := nt.GetResult(true) // TestResult:成功/失败次数、平均延迟等,true 表示取后清零
完整可运行例程:examples/nettest/main.go
注意
- 原始 ICMP 在 Windows 直接可用;Linux 下通常需要 root 或
cap_net_raw。 NewPing的 timeout 单位毫秒;Ping.Test为一次性探测,无统计,统计用NetTest。