go 实现ping检查ip

时间:2022-12-09 11:58:59




"github.com/go-ping/ping"


func Ping(addr string, t time.Duration) bool {
// ping.New()
pinger, err := ping.NewPinger(addr)
if err != nil {
return false
}
// 设置ping的次数
pinger.Count = 2
pinger.Timeout = time.Duration(t)

/*
设置pinger将发送的类型。
false表示pinger将发送“未经授权”的UDP ping
true表示pinger将发送“特权”原始ICMP ping
*/
pinger.SetPrivileged(true)
// 运行pinger
pinger.Run()
stats := pinger.Statistics()
if stats.PacketsRecv >= 1 {
return true
} else {
return false
}
}