ipv6_is_match()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Trova la corrispondenza con due stringhe di indirizzi di rete IPv6 o IPv4. Le due stringhe IPv6/IPv4 vengono analizzate e confrontate tenendo conto della maschera di prefisso IP combinata calcolata dai prefissi degli argomenti e dell'argomento facoltativo prefix
.
Nota
La funzione può accettare e confrontare argomenti che rappresentano indirizzi di rete IPv6 e IPv4. Se il chiamante sa che gli argomenti sono in formato IPv4, usare la funzione ipv4_is_match(). Questa funzione comporterà prestazioni di runtime migliori.
Sintassi
ipv6_is_match(
prefisso ip1,
ip2[ ,
])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
ip1, ip2 | string |
✔️ | Espressione che rappresenta un indirizzo IPv6 o IPv4. Le stringhe IPv6 e IPv4 possono essere mascherate usando la notazione con prefisso IP. |
prefix | int |
Intero compreso tra 0 e 128 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 IPv6/IPv4 è uguale al secondo argomento stringa IPv6/IPv4.false
:Altrimenti.null
: se la conversione per una delle due stringhe IPv6/IPv4 non è riuscita.
Esempi
Caso di uguaglianza di confronto IPv6/IPv4 : notazione del prefisso IP specificata all'interno delle stringhe IPv6/IPv4
datatable(ip1_string:string, ip2_string:string)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.1', // Equal IPs
'192.168.1.1/24', '192.168.1.255', // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
'192.168.1.1/30', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7994', // Equal IPs
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1', '::ffff:c0a8:0101', // Equal IPs
'192.168.1.1/24', '::ffff:c0a8:01ff', // 24 bit IP-prefix is used for comparison
'::ffff:c0a8:0101', '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 = ipv6_is_match(ip1_string, ip2_string)
Output
ip1_string | ip2_string | result |
---|---|---|
192.168.1.1 | 192.168.1.1 | 1 |
192.168.1.1/24 | 192.168.1.255 | 1 |
192.168.1.1 | 192.168.1.255/24 | 1 |
192.168.1.1/30 | 192.168.1.255/24 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7994 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7998/120 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998/120 | 1 |
192.168.1.1 | ::ffff:c0a8:0101 | 1 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 1 |
::ffff:c0a8:0101 | 192.168.1.255/24 | 1 |
::192.168.1.1/30 | 192.168.1.255/24 | 1 |
Maiuscole/minuscole di uguaglianza di confronto IPv6/IPv4: notazione con prefisso IP specificato all'interno delle stringhe IPv6/IPv4 e come argomento aggiuntivo della ipv6_is_match()
funzione
datatable(ip1_string:string, ip2_string:string, prefix:long)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.0', 31, // 31 bit IP4-prefix is used for comparison
'192.168.1.1/24', '192.168.1.255', 31, // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255', 24, // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7995', 127, // 127 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/127', 'fe80::85d:e82c:9446:7998', 120, // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', 127, // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1/24', '::ffff:c0a8:01ff', 127, // 127 bit IP6-prefix is used for comparison
'::ffff:c0a8:0101', '192.168.1.255', 120, // 120 bit IP6-prefix is used for comparison
'::192.168.1.1/30', '192.168.1.255/24', 127, // 120 bit IP6-prefix is used for comparison
]
| extend result = ipv6_is_match(ip1_string, ip2_string, prefix)
Output
ip1_string | ip2_string | prefix | result |
---|---|---|---|
192.168.1.1 | 192.168.1.0 | 31 | 1 |
192.168.1.1/24 | 192.168.1.255 | 31 | 1 |
192.168.1.1 | 192.168.1.255 | 24 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7995 | 127 | 1 |
fe80::85d:e82c:9446:7994/127 | fe80::85d:e82c:9446:7998 | 120 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 127 | 1 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 127 | 1 |
::ffff:c0a8:0101 | 192.168.1.255 | 120 | 1 |
::192.168.1.1/30 | 192.168.1.255/24 | 127 | 1 |
Contenuto correlato
- Panoramica delle funzioni IPv4/IPv6