NET.IP_NET_MASK |
Réseau : Masque IP |
| BigQuery |
Syntaxe
|
NET.IP_NET_MASK(num_output_bytes, prefix_length)
|
Paramètres
| Nom |
Description |
| num_output_bytes |
Ce paramètre permet de spécifier la longueur (en octets) du masque réseau à retourner. Pour les adresses IPv4, cette valeur doit être 4. Pour les adresses IPv6, cette valeur doit être 16. Ce paramètre est de type INT64. |
| prefix_length |
Ce paramètre permet de définir la longueur du préfixe réseau (ou CIDR) en bits. Il indique le nombre de bits les plus significatifs qui seront mis à 1 dans le masque réseau, tandis que les bits restants seront mis à 0. Ce paramètre est de type INT64. |
Description
Cette fonction permet de demander le masque réseau en relation avec des adresses IP.
Remarques
- Permet de générer dynamiquement un masque réseau binaire : La fonction NET.IP_NET_MASK retourne un masque réseau sous forme de valeur binaire (BYTES),
utilisé en conjonction avec des adresses IP pour déterminer les plages ou sous-réseaux. Ce masque est généré à partir
de deux paramètres numériques (octets et longueur de préfixe).
- Supporte IPv4 et IPv6 via la taille en octets : Pour travailler avec IPv4, on utilise num_output_bytes = 4, et
pour IPv6, on utilise num_output_bytes = 16. Cela rend la fonction polyvalente pour les deux grandes familles de protocoles
réseau, en évitant toute ambiguïté dans la structure du masque retourné.
- Utilise la notation CIDR pour la définition du préfixe : Le paramètre prefix_length définit la taille du réseau en bits, comme dans la notation
CIDR (/24, /64,...). Les bits de gauche sont à 1 (réseau), et ceux de droite à 0 (hôtes), ce qui permet de reconstruire précisément la structure d'un sous-réseau.
- Fonction clef pour des opérations de segmentation réseau : NET.IP_NET_MASK est couramment utilisée avec d'autres fonctions comme NET.IP_TRUNC ou
NET.IP_IN_NET pour découper ou filtrer des adresses IP selon des plages bien définies, ce qui est fondamental en sécurité, routage ou géolocalisation.
- Renvoie le masque réseau au format BYTES : Le résultat retourné par cette fonction n'est pas une chaîne de type 255.255.255.0 mais une valeur binaire,
compatible avec les traitements réseau avancés. Pour une lecture humaine, il faut éventuellement convertir ou manipuler ce résultat différemment.
- Peut générer tous les masques valides d'un réseau donné : En modifiant dynamiquement la valeur de prefix_length, on peut produire tous les masques
possibles d'un réseau donné (de /0 à /32 pour IPv4, /0 à /128 pour IPv6). Cela facilite les tests, la planification d'adressage ou la génération de blocs IP.
- Indispensable pour construire des filtres d'appartenance à un sous-réseau : Lorsqu'on veut vérifier si une IP appartient à une plage (avec NET.IP_IN_NET),
il faut fournir un masque réseau. NET.IP_NET_MASK permet donc de générer dynamiquement ce masque selon le contexte d'analyse (taille de segment, type
d'adresse,...).
- Doit être utilisée avec précaution pour éviter les erreurs de format : Si la combinaison entre num_output_bytes et prefix_length est invalide (exemple :
4 octets avec un préfixe > 32), BigQuery retournera une erreur. Il est donc important de valider la cohérence des paramètres pour éviter des interruptions dans
les traitements.
Dernière mise à jour : Jeudi, le 18 Juin 2020