Maison >développement back-end >Golang >Comment valider efficacement les plages IP dans Go/GoLang ?
Déterminer si une adresse IP se situe dans une plage spécifiée est une exigence courante dans les applications réseau. Dans Go/GoLang, cela peut être réalisé efficacement en utilisant la représentation numérique inhérente des adresses IP.
Pour représenter les adresses IP, Go utilise des tranches d'octets bigendiens, fournissant une méthode pratique de comparaison à l'aide d'octets.Compare. Cette approche élimine le besoin d'analyse de chaîne ou d'expressions régulières complexes.
Considérez une plage IP définie comme 216.14.49.184 à 216.14.49.191. Pour valider si une adresse IP d'entrée, telle que 216.14.49.185, appartient à cette plage, nous pouvons exploiter le code suivant :
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") }
Ce script démontre l'efficacité de cette approche, en validant et en classant les adresses IP avec facilité :
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
En conclusion, cette méthode fournit un moyen simple et efficace de valider les adresses IP par rapport à une plage spécifiée dans Go/GoLang, un outil inestimable pour les applications réseau.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!