Partager via


ipv6_is_in_any_range()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Vérifie si une adresse de chaîne IPv6 se trouve dans l’une des plages d’adresses IPv6 spécifiées.

Astuces pour les performances

Remarque

Lorsque plus de 128 termes de recherche sont utilisés, l’optimisation de la recherche d’index de texte est désactivée, ce qui peut entraîner une réduction des performances des requêtes.

Syntaxe

ipv6_is_in_any_range(Ipv6Address , Ipv6Range [ , Ipv6Range ...] )

ipv6_is_in_any_range(Ipv6Address , Ipv6Ranges )

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
Ipv6Address string ✔️ Expression représentant une adresse IPv6.
Ipv6Range string ✔️ Expression représentant une plage IPv6 à l’aide de la notation de préfixe IP.
Ipv6Ranges dynamic ✔️ Tableau contenant des plages IPv6 à l’aide de la notation de préfixe IP.

Remarque

Une ou plusieurs chaînes IPv6Range ou un tableau dynamique IPv6Ranges sont nécessaires.

Notation de préfixe IP

La notation de préfixe IP (également appelée notation CIDR) est un moyen concis de représenter une adresse IP et son masque réseau associé. Le format est <base IP>/<prefix length>, où la longueur du préfixe est le nombre de 1 bits de début dans le masque net. La longueur du préfixe détermine la plage d’adresses IP qui appartiennent au réseau.

Pour IPv4, la longueur du préfixe est un nombre compris entre 0 et 32. Ainsi, la notation 192.168.2.0/24 représente l’adresse IP 192.168.2.0 avec un masque netmask de 255.255.255.255.0. Ce masque net a 24 bits de début 1 ou une longueur de préfixe de 24.

Pour IPv6, la longueur du préfixe est un nombre compris entre 0 et 128. Ainsi, la notation fe80 ::85d :e82c :9446:7994/120 représente l’adresse IP fe80 ::85d :e82c :9446:7994 avec un masque net de ffff :ffff :ffff :ffff :ffff :ff00. Ce masque net a 120 bits de début 1 ou une longueur de préfixe de 120.

Retours

  • true: si l’adresse IPv6 se trouve dans la plage d’un des réseaux IPv6 spécifiés.
  • false:Autrement.
  • null: Si la conversion pour l’une des deux chaînes IPv6 n’a pas réussi.

Exemple

let LocalNetworks=dynamic([
    "a5e:f127:8a9d:146d:e102:b5d3:c755:f6cd/112",
    "0:0:0:0:0:ffff:c0a8:ac/60"
]);
let IPs=datatable(IP:string) [
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abcd",
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abce",
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abcf",
    "a5e:f127:8a9d:146d:e102:b5d3:c756:abd1",
];
IPs
| extend IsLocal=ipv6_is_in_any_range(IP, LocalNetworks)

Sortie

IP IsLocal
a5e :f127:8a9d :146d :e102 :b5d3 :c755 :abcd True
a5e :f127:8a9d :146d :e102 :b5d3 :c755 :abce True
a5e :f127:8a9d :146d :e102 :b5d3 :c755 :abcf True
a5e :f127:8a9d :146d :e102 :b5d3 :c756 :abd1 False