GitHubContribuer dans GitHub: Editer en ligne

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