Condividi tramite


ipv4_is_match()

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

Trova la corrispondenza con due stringhe IPv4. Le due stringhe IPv4 vengono analizzate e confrontate tenendo conto della maschera di prefisso IP combinata calcolata dai prefissi degli argomenti e dell'argomento facoltativo prefix .

Sintassi

ipv4_is_match(prefisso ip1,ip2[ ,])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
ip1, ip2 string ✔️ Espressione che rappresenta un indirizzo IPv4. Le stringhe IPv4 possono essere mascherate usando la notazione con prefisso IP.
prefix int Intero compreso tra 0 e 32 che rappresenta il numero di bit più significativi presi in considerazione.

Notazione del prefisso IP

La notazione del prefisso IP (nota anche come notazione CIDR) è un modo conciso di rappresentare un indirizzo IP e la relativa maschera di rete associata. Il formato è <base IP>/<prefix length>, dove la lunghezza del prefisso è il numero di 1 bit iniziali nella maschera di rete. La lunghezza del prefisso determina l'intervallo di indirizzi IP che appartengono alla rete.

Per IPv4, la lunghezza del prefisso è un numero compreso tra 0 e 32. La notazione 192.168.2.0/24 rappresenta quindi l'indirizzo IP 192.168.2.0 con una maschera di rete 255.255.255.0. Questa maschera di rete ha 24 bit iniziali 1 o una lunghezza del prefisso pari a 24.

Per IPv6, la lunghezza del prefisso è un numero compreso tra 0 e 128. La notazione fe80::85d:e82c:9446:7994/120 rappresenta l'indirizzo IP fe80::85d:e82c:9446:7994 con una maschera di rete ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Questa maschera di rete ha 120 bit iniziali 1 o una lunghezza del prefisso pari a 120.

Valori restituiti

  • true: se la rappresentazione lunga del primo argomento stringa IPv4 è uguale al secondo argomento stringa IPv4.
  • false:Altrimenti.
  • null: se la conversione per una delle due stringhe IPv4 non è riuscita.

Nota

Quando si esegue la corrispondenza con un indirizzo IPv4 che non è un intervallo, è consigliabile usare l'operatore equals (==), per ottenere prestazioni migliori.

Esempi

Esempio semplice

print ipv4_is_match('192.168.1.1/24', '192.168.1.255')

Output

print_0
true

Uguaglianza di confronto IPv4 : notazione del prefisso IP specificata all'interno delle stringhe IPv4

datatable(ip1_string:string, ip2_string:string)
[
 '192.168.1.0',    '192.168.1.0',       // Equal IPs
 '192.168.1.1/24', '192.168.1.255',     // 24 bit IP-prefix is used for comparison
 '192.168.1.1',    '192.168.1.255/24',  // 24 bit IP-prefix is used for comparison
 '192.168.1.1/30', '192.168.1.255/24',  // 24 bit IP-prefix is used for comparison
]
| extend result = ipv4_is_match(ip1_string, ip2_string)

Output

ip1_string ip2_string result
192.168.1.0 192.168.1.0 true
192.168.1.1/24 192.168.1.255 true
192.168.1.1 192.168.1.255/24 true
192.168.1.1/30 192.168.1.255/24 true

Uguaglianza di confronto IPv4 : notazione del prefisso IP specificata all'interno delle stringhe IPv4 e un argomento aggiuntivo della ipv4_is_match() funzione

datatable(ip1_string:string, ip2_string:string, prefix:long)
[
 '192.168.1.1',    '192.168.1.0',   31, // 31 bit IP-prefix is used for comparison
 '192.168.1.1/24', '192.168.1.255', 31, // 24 bit IP-prefix is used for comparison
 '192.168.1.1',    '192.168.1.255', 24, // 24 bit IP-prefix is used for comparison
]
| extend result = ipv4_is_match(ip1_string, ip2_string, prefix)

Output

ip1_string ip2_string prefix result
192.168.1.1 192.168.1.0 31 true
192.168.1.1/24 192.168.1.255 31 true
192.168.1.1 192.168.1.255 24 true