package main
import (
"fmt"
"github.com/go-ping/ping"
"os/exec"
"time"
)
func main() {
pingTest("192.168.1.1")
pingTest("8.8.8.8")
conn, err := PingConn("8.8.8.8")
fmt.Println(conn, err)
}
func PingConn(addr string) (bool, error) {
Command := fmt.Sprintf("ping -c 1 -W 3 %s > /dev/null && echo true || echo false", addr)
output, err := exec.Command("/bin/sh","-c", Command).Output()
return string(output) == "true\n", err
}
func pingTest(ip string) {
pinger, err := ping.NewPinger(ip)
if err != nil {
panic(err)
}
pinger.Debug = true
pinger.OnFinish = func(statistics *ping.Statistics) {
fmt.Printf("OnFinish: %#v\n", statistics)
}
pinger.OnRecv = func(packet *ping.Packet) {
fmt.Printf("OnRecv: %#v\n", packet)
}
pinger.Timeout = time.Second * 3
pinger.Count = 3
pinger.Run() // blocks until finished
}
Golang 模拟ping操作
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。 ping 一下服务器的IP...
- 实现方法 android中调用ping命令需要使用Linux底层的命令: ping -c 1 -w 10 ip 其...
- 虚拟机ping入站规则开启 1.虚拟机要开启桥连模式 2.ping ip 要在:控制面板\所有控制面板项\Wind...
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...