Schnelle Überprüfung des IP-Bereichs in Go
In Go ist die effiziente Bestimmung, ob eine IP-Adresse in einen bestimmten Bereich fällt, für die Netzwerkverwaltung und -verwaltung von entscheidender Bedeutung Sicherheitsaufgaben. In diesem Artikel wird der schnellste Ansatz zur Bewältigung dieser Herausforderung untersucht.
Die effizienteste Möglichkeit, zu überprüfen, ob sich eine IP-Adresse in einem bestimmten Bereich befindet, besteht darin, sie mithilfe der Funktion „bytes.Compare“ mit den Bereichsendpunkten zu vergleichen. IP-Adressen werden in Go als bigendian []Byte-Slices dargestellt, wodurch dieser Vergleich genau ist.
Das folgende Codebeispiel veranschaulicht diesen Ansatz:
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") }
Dieser Code erzeugt die folgende Ausgabe:
1.2.3.4 is NOT between 216.14.49.184 and 216.14.49.191 216.14.49.185 is between 216.14.49.184 and 216.14.49.191 1::16 is not an IPv4 address
Zusammenfassend lässt sich sagen, dass die Verwendung von bytes.Compare zum Vergleichen von IP-Adressen bei Bereichsprüfungen die effizienteste Methode in Go ist und eine genaue und schnelle Arbeit ermöglicht Bestimmungen.
Das obige ist der detaillierte Inhalt vonWie kann man in Go effizient prüfen, ob eine IP-Adresse innerhalb eines Bereichs liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!