Partager via


ipv4_is_in_any_range()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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