[go]go版的ping測試程式(1)
阿新 • • 發佈:2019-02-06
在<Go語言程式設計>中有icmp ping的例子,不過實際測試不通過....這個有空研究一下原始碼再看.
注: 原文程式碼需要修改
_, err = conn.Read(msg[0:])
改為_, err = conn.Read(msg[20:])
在網找到了一個可用的模組,還可以支援ipv6(摘自go自帶原始碼 src/pkg/net/ipraw_test.go)
簡單測試了一下.可用
package main import ( "ping" "fmt" "time" "os" ) func main() { //1.輸入引數處理.這裡使用os而非flag var host string if len(os.Args) != 2 { host="127.0.0.1" }else{ host = os.Args[1] //目標域名 } t1:=time.Now().UnixNano() alive,err:=ping.Ping(host,3) fmt.Println("result ",alive,err) t2:=time.Now().UnixNano() fmt.Println(t2-t1); }