123456789101112131415161718192021222324252627282930313233343536373839 |
- package main
- import (
- "fmt"
- "github.com/go-ping/ping"
- "time"
- )
- func main() {
- // 定义目标地址
- host := "106.54.33.152"
- // 创建一个 Pinger
- pinger, err := ping.NewPinger(host)
- if err != nil {
- fmt.Printf("Error: %v\n", err)
- return
- }
- pinger.SetPrivileged(true)
- // 设置参数
- pinger.Count = 4 // 发送 4 个 ICMP 包
- pinger.Timeout = 5 * time.Second // 超时时间
- // 开始 ping
- fmt.Printf("Pinging %s...\n", host)
- err = pinger.Run() // 阻塞直到完成
- if err != nil {
- fmt.Printf("Error: %v\n", err)
- return
- }
- // 获取结果
- stats := pinger.Statistics() // 获取统计数据
- fmt.Printf("Ping statistics for %s:\n", host)
- fmt.Printf("Packets: Sent = %d, Received = %d, Lost = %d (%.2f%% loss)\n",
- stats.PacketsSent, stats.PacketsRecv, stats.PacketLoss)
- fmt.Printf("Round-trip times: Min = %v, Max = %v, Avg = %v\n",
- stats.MinRtt, stats.MaxRtt, stats.AvgRtt)
- }
|