ipv6_compare()
Compare deux chaînes d'adresse réseau IPv6 ou IPv4 . Les deux chaînes IPv6 sont analysées et comparées tout en tenant compte du masque de préfixe IP combiné calculé à partir des préfixes d'argument et de l'argument PrefixMask facultatif.
ipv6_compare('::ffff:7f00:1', '127.0.0.1') == 0
ipv6_compare('fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7995') < 0
ipv6_compare('192.168.1.1/24', '192.168.1.255/24') == 0
ipv6_compare('fe80::85d:e82c:9446:7994/127', 'fe80::85d:e82c:9446:7995/127') == 0
ipv6_compare('fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7995', 127) == 0
La fonction peut accepter et comparer des arguments représentant à la fois des adresses réseau IPv6 et IPv4 . Toutefois, si l'appelant sait que les arguments sont au format IPv4 , utilisez la fonction ipv4_is_compare() . Cette fonction améliore les performances d'exécution.
Syntaxe
ipv6_compare(Expr1, Expr2[ ,Masque de préfixe])
Arguments
| Nom | Type | Obligatoire | Descriptif |
|---|---|---|---|
| Expr1 | Chaîne | ✓ | Expression de chaîne représentant une adresse IPv4/IPV6 . Les chaînes IPv4 peuvent être masquées à l'aide de la notation de préfixe IP. |
| Expr2 | Chaîne | ✓ | Expression de chaîne représentant une adresse IPv4/IPV6 . Les chaînes IPv4 peuvent être masquées à l'aide de la notation de préfixe IP. |
| PrefixMask | Nombre ou chaîne | Un entier de 0 à 32 représentant le nombre de bits de poids fort pris en compte. |
Notation de préfixe IP
Il est courant de définir des adresses IP avec IP-prefix notation à l'aide d'une barre oblique (/). L'adresse IP de LEFT de la barre oblique (/) est l'adresse IP de base, et le nombre (1 à 127) à la droite de la barre oblique (/) est le nombre de bits 1 contigus dans le masque de réseau.
Par exemple, fe80::85d:e82c:9446:7994/120 aura un masque de réseau / sous-réseau associé contenant 120 bits contigus.
Retours
0: si la représentation longue du premier argument de chaîne IPv6 est égale au deuxième argument de chaîne IPv6 .1: si la représentation longue du premier argument de chaîne IPv6 est supérieure au second argument de chaîne IPv6 .-1: si la représentation longue du premier argument de chaîne IPv6 est inférieure au second argument de chaîne IPv6 .null: si la conversion de l'une des deux chaînes IPv6 a échoué.
Exemple
Comparer les adresses IP à l'aide de la notation de préfixe IP spécifiée dans les chaînes IPv6/IPv4
Exemple
Comparer les adresses IP à l'aide de la notation de préfixe IP spécifiée dans les chaînes IPv6/IPv4 et comme argument supplémentaire de la fonction ipv6_compare()
events_all
| project src_ipv6, result=ipv6_compare(src_ipv6,'2001:db8:ffff:ffff:ffff:ffff:ffff:eeee')
| distinct result
Les résultats
| résultat |
|---|
| -1 |
| -1 |
| 0 |
| 1 |