【发布时间】:2017-01-02 18:57:51
【问题描述】:
我一直在使用 go-ping 库进行非特权 ping 并计算 golang 中的各种网络统计信息。 代码 sn -p 是 as->
func (p *Ping) doPing() (latency, jitter, packetLoss float64, err error) {
timeout := time.Second*1000
interval := time.Second
count := 5
host := p.ipAddr
pinger, cmdErr := ping.NewPinger(host)
if cmdErr != nil {
glog.Error("Failed to ping " + p.ipAddr)
err = cmdErr
return
}
pinger.Count = count
pinger.Interval = interval
pinger.Timeout = timeout
pinger.SetPrivileged(false)
pinger.Run()
stats := pinger.Statistics()
latency = float64(stats.AvgRtt)
jitter = float64(stats.StdDevRtt)
packetLoss = stats.PacketLoss
return
}
它工作正常,但现在它开始抛出:- “侦听 ICMP 数据包时出错:套接字:权限被拒绝”错误。 有人知道这背后的原因吗?我使用的 Go 版本是 go1.7.4。
【问题讨论】:
标签: go