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...
- 今天青石的票圈出鏡率最高的,莫過于張藝謀的新片終于定檔了。 一張滿溢著水墨風的海報一次次的出現在票圈里,也就是老謀...