Vérification de la plage d'adresses IP dans Go/GoLang
Lorsque vous travaillez avec des adresses IP dans Go, vous pouvez rencontrer le besoin de déterminer si une adresse IP donnée L'adresse IP se situe dans une plage spécifique. Cette tâche est rendue simple et efficace grâce aux fonctions intégrées de Go.
Pour vérifier si une adresse IP se trouve dans une plage, suivez ces étapes :
1. Convertir les adresses IP en octets :
Convertissez les adresses IP de début et de fin de la plage, ainsi que l'adresse IP d'entrée, en tranches d'octets à l'aide de la fonction net.ParseIP. Cette fonction renvoie un type IP, qui est une représentation bigendienne en tranches d'octets de l'adresse IP.
2. Comparez les tranches d'octets :
Utilisez bytes.Compare pour comparer les tranches d'octets de l'adresse IP d'entrée et les adresses IP de début et de fin de la plage. Cette fonction renvoie un entier indiquant l'ordre relatif des tranches d'octets :
Exemple de code :
Le code suivant montre comment vérifier si une adresse IP se trouve dans une plage en utilisant des octets.Compare :
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") }Dans cet exemple, la fonction de vérification essaie d'abord d'analyser l'adresse IP d'entrée. S'il ne s'agit pas d'une adresse IPv4 valide, il renvoie un message d'erreur. Sinon, il compare les tranches d'octets de l'adresse IP d'entrée avec les adresses IP de début et de fin de la plage à l'aide de bytes.Compare. Il imprime ensuite le résultat et renvoie un booléen indiquant si l'adresse IP d'entrée se trouve dans la plage.
En utilisant bytes.Compare, Go fournit un moyen efficace et simple de vérifier si une adresse IP se trouve dans une plage spécifiée. , ce qui en fait un outil précieux pour les tâches de manipulation d'adresses IP.
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!