1 Star 1 Fork 1

坐公交也用券/gns

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ping_stats_example.go 2.32 KB
一键复制 编辑 原始数据 按行查看 历史
坐公交也用券 提交于 2025-07-13 21:46 +08:00 . 优化Windows平台Ping的实现
package main
import (
"fmt"
"log"
"os"
"gitee.com/liumou_site/gns/ping"
)
func main() {
if len(os.Args) < 2 {
fmt.Println("用法: go run ping_stats_example.go <主机地址> [ping次数]")
fmt.Println("示例: go run ping_stats_example.go 8.8.8.8 10")
os.Exit(1)
}
host := os.Args[1]
count := 4 // 默认ping次数
if len(os.Args) >= 3 {
if _, err := fmt.Sscanf(os.Args[2], "%d", &count); err != nil {
log.Fatalf("无效的ping次数: %s", os.Args[2])
}
}
// 创建Ping实例
p := ping.NewPing(count, 5)
fmt.Printf("正在ping %s,发送 %d 个包...\n", host, count)
// 执行ping并获取统计信息
result, err := p.ICMPWithStats(host, count, true)
if err != nil {
log.Printf("Ping失败: %v", err)
// 即使失败也显示部分结果
}
// 显示详细的统计信息
fmt.Println("\n=== Ping统计结果 ===")
fmt.Printf("目标主机: %s\n", result.Host)
fmt.Printf("发送包数: %d\n", result.Sent)
fmt.Printf("接收包数: %d\n", result.Received)
fmt.Printf("丢失包数: %d\n", result.Lost)
fmt.Printf("丢包率: %.2f%%\n", result.LossRate)
if result.Received > 0 {
fmt.Printf("最小RTT: %v\n", result.MinRTT)
fmt.Printf("最大RTT: %v\n", result.MaxRTT)
fmt.Printf("平均RTT: %v\n", result.AvgRTT)
// 显示所有RTT值
fmt.Println("\n详细RTT信息:")
for i, rtt := range result.RTTs {
fmt.Printf(" 包 %d: %v\n", i+1, rtt)
}
}
// 根据丢包率给出网络质量评估
fmt.Println("\n=== 网络质量评估 ===")
switch {
case result.LossRate == 0:
fmt.Println("网络质量: 优秀 (无丢包)")
case result.LossRate < 1:
fmt.Println("网络质量: 良好 (丢包率 < 1%)")
case result.LossRate < 5:
fmt.Println("网络质量: 一般 (丢包率 1-5%)")
case result.LossRate < 10:
fmt.Println("网络质量: 较差 (丢包率 5-10%)")
default:
fmt.Println("网络质量: 很差 (丢包率 > 10%)")
}
if result.Received > 0 {
switch {
case result.AvgRTT < 10:
fmt.Println("延迟质量: 优秀 (平均RTT < 10ms)")
case result.AvgRTT < 50:
fmt.Println("延迟质量: 良好 (平均RTT 10-50ms)")
case result.AvgRTT < 100:
fmt.Println("延迟质量: 一般 (平均RTT 50-100ms)")
case result.AvgRTT < 200:
fmt.Println("延迟质量: 较差 (平均RTT 100-200ms)")
default:
fmt.Println("延迟质量: 很差 (平均RTT > 200ms)")
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/liumou_site/gns.git
git@gitee.com:liumou_site/gns.git
liumou_site
gns
gns
v1.8.4

搜索帮助