Heim > Artikel > Backend-Entwicklung > Wie überprüfe ich in Go, ob eine IP-Adresse innerhalb eines bestimmten Bereichs liegt?
Überprüfen des IP-Adressbereichs in Go/GoLang
Bei der Arbeit mit IP-Adressen in Go müssen Sie möglicherweise feststellen, ob ein bestimmter IP-Adressbereich vorhanden ist Die IP-Adresse liegt in einem bestimmten Bereich. Mit den integrierten Funktionen von Go wird diese Aufgabe einfach und effizient.
Um zu überprüfen, ob eine IP-Adresse in einem Bereich liegt, führen Sie die folgenden Schritte aus:
1. Konvertieren Sie IP-Adressen in Bytes:
Konvertieren Sie die Start- und End-IP-Adressen des Bereichs sowie die eingegebene IP-Adresse mit der Funktion net.ParseIP in Byte-Slices. Diese Funktion gibt einen IP-Typ zurück, der eine Bigendian-Byte-Slice-Darstellung der IP-Adresse ist.
2. Byte-Slices vergleichen:
Verwenden Sie bytes.Compare, um die Byte-Slices der eingegebenen IP-Adresse und der Start- und End-IP-Adressen des Bereichs zu vergleichen. Diese Funktion gibt eine Ganzzahl zurück, die die relative Reihenfolge der Byte-Slices angibt:
Beispielcode:
Der folgende Code zeigt, wie mithilfe von Bytes überprüft wird, ob eine IP-Adresse in einem Bereich liegt. Vergleichen Sie:
package main import ( "bytes" "fmt" "net" ) var ( ip1 = net.ParseIP("216.14.49.184") ip2 = net.ParseIP("216.14.49.191") ) func check(ip string) bool { trial := net.ParseIP(ip) if trial.To4() == nil { fmt.Printf("%v is not an IPv4 address\n", trial) return false } if bytes.Compare(trial, ip1) >= 0 && bytes.Compare(trial, ip2) <= 0 { fmt.Printf("%v is between %v and %v\n", trial, ip1, ip2) return true } fmt.Printf("%v is NOT between %v and %v\n", trial, ip1, ip2) return false } func main() { check("1.2.3.4") check("216.14.49.185") check("1::16") }In diesem Beispiel versucht die Prüffunktion zunächst, die eingegebene IP-Adresse zu analysieren. Wenn es sich nicht um eine gültige IPv4-Adresse handelt, wird eine Fehlermeldung zurückgegeben. Andernfalls werden die Byte-Slices der eingegebenen IP-Adresse mithilfe von bytes.Compare mit den Start- und End-IP-Adressen des Bereichs verglichen. Anschließend wird das Ergebnis gedruckt und ein boolescher Wert zurückgegeben, der angibt, ob die eingegebene IP-Adresse im Bereich liegt.
Durch die Verwendung von bytes.Compare bietet Go eine effiziente und unkomplizierte Möglichkeit, zu überprüfen, ob eine IP-Adresse innerhalb eines bestimmten Bereichs liegt , was es zu einem wertvollen Werkzeug für IP-Adressmanipulationsaufgaben macht.
Das obige ist der detaillierte Inhalt vonWie überprüfe ich in Go, ob eine IP-Adresse innerhalb eines bestimmten Bereichs liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!