Wie kann man IP-Bereiche in Go/GoLang effizient validieren?

DDD
Freigeben: 2024-11-13 06:44:02
Original
790 Leute haben es durchsucht

How to Efficiently Validate IP Ranges in Go/GoLang?

Effiziente IP-Bereichsvalidierung in Go/GoLang

Die Feststellung, ob eine IP-Adresse in einen bestimmten Bereich fällt, ist eine häufige Anforderung in Netzwerkanwendungen. In Go/GoLang kann dies effizient durch die inhärente numerische Darstellung von IP-Adressen erreicht werden.

Zur Darstellung von IP-Adressen verwendet Go Bigendian-Byte-Slices und bietet damit eine praktische Vergleichsmethode mit bytes.Compare. Dieser Ansatz macht das Parsen von Zeichenfolgen oder komplexe reguläre Ausdrücke überflüssig.

Stellen Sie sich einen IP-Bereich vor, der als 216.14.49.184 bis 216.14.49.191 definiert ist. Um zu überprüfen, ob eine eingegebene IP-Adresse wie 216.14.49.185 zu diesem Bereich gehört, können wir den folgenden Code nutzen:

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")
}
Nach dem Login kopieren

Dieses Skript demonstriert die Effizienz dieses Ansatzes, bei dem IP-Adressen validiert und klassifiziert werden Leichtigkeit:

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
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass diese Methode eine optimierte und effiziente Möglichkeit zur Validierung von IP-Adressen anhand eines bestimmten Bereichs bietet Go/GoLang, ein unschätzbar wertvolles Tool für Netzwerkanwendungen.

Das obige ist der detaillierte Inhalt vonWie kann man IP-Bereiche in Go/GoLang effizient validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage