ipv4_is_in_any_range()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Vérifie si l’adresse de chaîne IPv4 se trouve dans l’une des plages d’adresses IPv4 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
ipv4_is_in_any_range(
Ipv4Address ,
Ipv4Range [ ,
Ipv4Range ...] )
ipv4_is_in_any_range(
Ipv4Address ,
Ipv4Ranges )
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
Ipv4Address | string |
✔️ | Expression représentant une adresse IPv4. |
Ipv4Range | string |
✔️ | Une plage IPv4 ou une liste de plages IPv4 écrites avec une notation de préfixe IP. |
Ipv4Ranges | dynamic |
✔️ | Tableau dynamique contenant des plages IPv4 écrites avec une notation de préfixe IP. |
Remarque
Une ou plusieurs chaînes IPv4Range ou un tableau dynamique IPv4Ranges 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 IPv4 se trouve dans la plage d’un des réseaux IPv4 spécifiés.false
:Autrement.null
: Si la conversion pour l’une des deux chaînes IPv4 n’a pas réussi.
Exemples
Syntaxe utilisant la liste des chaînes
print Result=ipv4_is_in_any_range('192.168.1.6', '192.168.1.1/24', '10.0.0.1/8', '127.1.0.1/16')
Sortie
Result |
---|
true |
Syntaxe utilisant un tableau dynamique
print Result=ipv4_is_in_any_range("127.0.0.1", dynamic(["127.0.0.1", "192.168.1.1"]))
Sortie
Result |
---|
true |
Étendre la table avec la vérification de la plage IPv4
let LocalNetworks=dynamic([
"192.168.1.1/16",
"127.0.0.1/8",
"10.0.0.1/8"
]);
let IPs=datatable(IP:string) [
"10.1.2.3",
"192.168.1.5",
"123.1.11.21",
"1.1.1.1"
];
IPs
| extend IsLocal=ipv4_is_in_any_range(IP, LocalNetworks)
Sortie
IP | IsLocal |
---|---|
10.1.2.3 | true |
192.168.1.5 | true |
123.1.11.21 | false |
1.1.1.1 | false |
Contenu connexe
- Vue d’ensemble des fonctions IPv4/IPv6
- Vue d’ensemble des fonctions de correspondance de texte IPv4