Heim >Backend-Entwicklung >Golang >Golang testet, ob es erfolgreich pingen kann
Im Projekt müssen wir wissen, welche IPs verfügbare IPs sind, deshalb haben wir über die Verwendung von ICMP (Internet Control Message Protocol) nachgedacht. Sie können die Open-Source-Bibliothek –github.com/sparrc/go-ping verwenden, um festzustellen, ob der Ping erfolgreich sein kann.
Code zur Verwendung der Open-Source-Bibliothek –github.com/sparrc/go-ping, um zu bestimmen, ob Ping erfolgreich sein kann:
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 }
Dies wird anhand der Anzahl der zurückgegebenen Pakete oder anhand der beurteilt Paket-Drop-Rate. Gleichzeitig stellt die Bibliothek die Statistikstruktur einschließlich detaillierter ICMP-Informationen wie folgt bereit
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 }
Weitere Golang-Kenntnisse finden Sie auf der chinesischen PHP-WebsiteGolang-TutorialSpalte.
Das obige ist der detaillierte Inhalt vonGolang testet, ob es erfolgreich pingen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!