Compartir a través de


ipv4_is_match()

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft 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