ipv4_compare()
Compara 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 PrefixMask
.
Syntax
ipv4_compare(
Expr1,
Expr2[ ,
PrefixMask])
Parámetros
Nombre | Tipo | Requerido | Descripción |
---|---|---|---|
Expr1, Expr2 | string |
✔️ | Expresión de cadena que representa una dirección IPv4. Las cadenas IPv4 se pueden enmascarar mediante la notación de prefijo IP. |
PrefixMask | int |
Entero de 0 a 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 forma 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:ffff:ff00. Esta máscara de red tiene 120 bits iniciales o una longitud de prefijo de 120.
Devoluciones
0
: si la representación larga del primer argumento de cadena IPv4 es igual al segundo argumento de cadena IPv4.1
: si la representación larga del primer argumento de cadena IPv4 es mayor que el segundo argumento de cadena IPv4.-1
: si la representación larga del primer argumento de cadena IPv4 es menor que el segundo argumento de cadena IPv4.null
: si la conversión de una de las dos cadenas IPv4 no se realizó correctamente.
Ejemplos: casos de igualdad de comparación de IPv4
Comparación de direcciones IP mediante la 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_compare(ip1_string, ip2_string)
Salida
ip1_string | ip2_string | resultado |
---|---|---|
192.168.1.0 | 192.168.1.0 | 0 |
192.168.1.1/24 | 192.168.1.255 | 0 |
192.168.1.1 | 192.168.1.255/24 | 0 |
192.168.1.1/30 | 192.168.1.255/24 | 0 |
Comparar direcciones IP mediante la notación de prefijo IP especificada dentro de las cadenas IPv4 y como argumento adicional de la ipv4_compare()
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_compare(ip1_string, ip2_string, prefix)
Salida
ip1_string | ip2_string | prefix | resultado |
---|---|---|---|
192.168.1.1 | 192.168.1.0 | 31 | 0 |
192.168.1.1/24 | 192.168.1.255 | 31 | 0 |
192.168.1.1 | 192.168.1.255 | 24 | 0 |
Contenido relacionado
- Introducción a las funciones IPv4/IPv6
- Información general sobre las funciones de coincidencia de texto IPv4
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de