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操作
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。 ping 一下服务器的IP...
- 实现方法 android中调用ping命令需要使用Linux底层的命令: ping -c 1 -w 10 ip 其...
- 虚拟机ping入站规则开启 1.虚拟机要开启桥连模式 2.ping ip 要在:控制面板\所有控制面板项\Wind...
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...