ipv4_is_match()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Asocia dos cadenas IPv4. Las dos cadenas IPv4 se analizan y comparan mientras se tienen en cuenta la máscara de prefijo IP combinada calculada a partir de prefijos de argumento y el argumento opcional prefix
.
Sintaxis
ipv4_is_match(
ip1,
prefijo ip2[ ,
])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
ip1, ip2 | string |
✔️ | Expresión que representa una dirección IPv4. Las cadenas IPv4 se pueden enmascarar mediante la notación de prefijo IP. |
prefijo | int |
Entero comprendido entre 0 y 32 que representa el número de bits más significativos que se tienen en cuenta. |
Notación de prefijo IP
La notación de prefijo IP (también conocida como notación CIDR) es una manera concisa de representar una dirección IP y su máscara de red asociada. El formato es <base IP>/<prefix length>
, donde la longitud del prefijo es el número de 1 bits iniciales en la máscara de red. La longitud del prefijo determina el intervalo de direcciones IP que pertenecen a la red.
Para IPv4, la longitud del prefijo es un número comprendido entre 0 y 32. Por lo tanto, la notación 192.168.2.0/24 representa la dirección IP 192.168.2.0 con una máscara de red de 255.255.255.0. Esta máscara de red tiene 24 bits iniciales o una longitud de prefijo de 24.
Para IPv6, la longitud del prefijo es un número comprendido entre 0 y 128. Por lo tanto, la notación fe80::85d:e82c:9446:7994/120 representa la dirección IP fe80::85d:e82c:9446:7994 con una máscara de red de ffff:ffff:ffff:ffff:ffff:ffff:ff00. Esta máscara de red tiene 120 bits iniciales o una longitud de prefijo de 120.
Devoluciones
true
: si la representación larga del primer argumento de cadena IPv4 es igual al segundo argumento de cadena IPv4.false
:De otra manera.null
: si la conversión de una de las dos cadenas IPv4 no se realizó correctamente.
Nota:
Cuando coincida con una dirección IPv4 que no sea un intervalo, se recomienda usar el operador equals (==
), para mejorar el rendimiento.
Ejemplos
Ejemplo sencillo
print ipv4_is_match('192.168.1.1/24', '192.168.1.255')
Salida
print_0 |
---|
true |
Igualdad de comparación IPv4: notación de prefijo IP especificada dentro de las cadenas 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)
Salida
ip1_string | ip2_string | resultado |
---|---|---|
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 |
Igualdad de comparación IPv4: notación de prefijo IP especificada dentro de las cadenas IPv4 y un argumento adicional de la ipv4_is_match()
función
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)
Salida
ip1_string | ip2_string | prefix | resultado |
---|---|---|---|
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 |
Contenido relacionado
- Introducción a las funciones IPv4/IPv6
- Información general sobre las funciones de coincidencia de texto IPv4