91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用go語言測試能ping通嗎?

發布時間:2020-05-22 17:09:36 來源:億速云 閱讀:707 作者:鴿子 欄目:編程語言

在項目中,我們需要知道哪些IP是可用IP,這時候想到了用ICMP(Internet控制報文協議)。可以使用開源庫–github.com/sparrc/go-ping來判斷是否能ping通。

使用–github.com/sparrc/go-ping開源庫判斷是否能ping通的代碼:

func ServerPing(target string) bool  {
	pinger, err := ping.NewPinger(target)
	if err != nil {
		panic(err)
	}

	pinger.Count = ICMPCOUNT
	pinger.Timeout = time.Duration(PINGTIME*time.Millisecond)
	pinger.SetPrivileged(true)
	pinger.Run()// blocks until finished
	stats := pinger.Statistics()

	fmt.Println(stats)
	// 有回包,就是說明IP是可用的
	if stats.PacketsRecv >= 1 {
		return true
	}
	return false
}

這里是通過回包數量來判斷的,也可以通過掉包率來判斷。同時,該庫提供了Statistics結構體,包含了詳細的ICMP信息,如下

type Statistics struct {
	// PacketsRecv is the number of packets received.
	PacketsRecv int

	// PacketsSent is the number of packets sent.
	PacketsSent int

	// PacketLoss is the percentage of packets lost.
	PacketLoss float64

	// IPAddr is the address of the host being pinged.
	IPAddr *net.IPAddr

	// Addr is the string address of the host being pinged.
	Addr string

	// Rtts is all of the round-trip times sent via this pinger.
	Rtts []time.Duration

	// MinRtt is the minimum round-trip time sent via this pinger.
	MinRtt time.Duration

	// MaxRtt is the maximum round-trip time sent via this pinger.
	MaxRtt time.Duration

	// AvgRtt is the average round-trip time sent via this pinger.
	AvgRtt time.Duration

	// StdDevRtt is the standard deviation of the round-trip times sent via
	// this pinger.
	StdDevRtt time.Duration
}

以上就是golang測試是否能ping通的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麦盖提县| 镇沅| 枣强县| 南平市| 准格尔旗| 忻城县| 额尔古纳市| 同仁县| 潮安县| 大新县| 湘潭市| 阳东县| 合山市| 桃源县| 渝北区| 浦北县| 红安县| 丹阳市| 铁岭县| 江华| 海原县| 海口市| 兴化市| 蕉岭县| 微博| 江陵县| 马公市| 奉新县| 旅游| 潼南县| 乌兰察布市| 中江县| 寿阳县| 丁青县| 杭锦后旗| 桂林市| 岑巩县| 平罗县| 加查县| 泽普县| 浪卡子县|