在 Go 中实现 ICMP ping
是否可以在 Go 中实现 ICMP ping?另一种方法是分叉一个“ping”进程,但我宁愿用 Go 编写。
Is it possible to implement an ICMP ping in Go? The alternative is to fork a 'ping' process, but I'd rather write it in Go.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下代码展示了如何使用原始套接字通过 IPv4 执行 ping(需要 root 权限):
基于此处找到的示例的代码: https://godoc.org/golang.org/x/net/icmp#PacketConn
要以非特权用户身份从 Linux 执行 ping 操作,请参阅 这篇文章
The following code shows how to perform a ping over IPv4 using a raw socket (requires root privs):
Code based on the example found here: https://godoc.org/golang.org/x/net/icmp#PacketConn
In order to ping from Linux as a non-privileged user, see this post
目前,Go net 软件包不支持 ICMP Echo (Ping) 功能。
Currently, the ICMP Echo (Ping) function isn't supported in the Go net package.
要在没有
root
要求的情况下执行此操作,您可以使用To perform this without
root
requirement you can use