main.go 927 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/go-ping/ping"
  5. "time"
  6. )
  7. func main() {
  8. // 定义目标地址
  9. host := "106.54.33.152"
  10. // 创建一个 Pinger
  11. pinger, err := ping.NewPinger(host)
  12. if err != nil {
  13. fmt.Printf("Error: %v\n", err)
  14. return
  15. }
  16. pinger.SetPrivileged(true)
  17. // 设置参数
  18. pinger.Count = 4 // 发送 4 个 ICMP 包
  19. pinger.Timeout = 5 * time.Second // 超时时间
  20. // 开始 ping
  21. fmt.Printf("Pinging %s...\n", host)
  22. err = pinger.Run() // 阻塞直到完成
  23. if err != nil {
  24. fmt.Printf("Error: %v\n", err)
  25. return
  26. }
  27. // 获取结果
  28. stats := pinger.Statistics() // 获取统计数据
  29. fmt.Printf("Ping statistics for %s:\n", host)
  30. fmt.Printf("Packets: Sent = %d, Received = %d, Lost = %d (%.2f%% loss)\n",
  31. stats.PacketsSent, stats.PacketsRecv, stats.PacketLoss)
  32. fmt.Printf("Round-trip times: Min = %v, Max = %v, Avg = %v\n",
  33. stats.MinRtt, stats.MaxRtt, stats.AvgRtt)
  34. }