Share via


ipv4_is_in_any_range()

Comprueba si la dirección de cadena IPv4 está en cualquiera de los intervalos de direcciones IPv4 especificados.

Syntax

ipv4_is_in_any_range(Ipv4Address,Ipv4Range [ ,Ipv4Range ...] )

ipv4_is_in_any_range(Ipv4Address,Ipv4Ranges)

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
Ipv4Address string ✔️ Expresión que representa una dirección IPv4.
Ipv4Range string ✔️ Un intervalo IPv4 o una lista de intervalos IPv4 escritos con notación de prefijo IP.
Ipv4Ranges dynamic ✔️ Matriz dinámica que contiene intervalos IPv4 escritos con notación de prefijo IP.

Nota

Se requieren una o varias cadenas IPv4Range o una matriz dinámica IPv4Ranges .

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 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 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:ffff:ffff:ff00. Esta máscara de red tiene 120 bits iniciales o una longitud de prefijo de 120.

Devoluciones

  • true: si la dirección IPv4 está en el intervalo de cualquiera de las redes IPv4 especificadas.
  • false:Lo contrario.
  • null: si la conversión de una de las dos cadenas IPv4 no se realizó correctamente.

Ejemplos

Sintaxis mediante la lista de cadenas

print Result=ipv4_is_in_any_range('192.168.1.6', '192.168.1.1/24', '10.0.0.1/8', '127.1.0.1/16')

Salida

Resultado
true

Sintaxis mediante matriz dinámica

print Result=ipv4_is_in_any_range("127.0.0.1", dynamic(["127.0.0.1", "192.168.1.1"]))

Salida

Resultado
true

Extensión de tabla con comprobación de intervalo IPv4

let LocalNetworks=dynamic([
    "192.168.1.1/16",
    "127.0.0.1/8",
    "10.0.0.1/8"
]);
let IPs=datatable(IP:string) [
    "10.1.2.3",
    "192.168.1.5",
    "123.1.11.21",
    "1.1.1.1"
];
IPs
| extend IsLocal=ipv4_is_in_any_range(IP, LocalNetworks)

Salida

IP IsLocal
10.1.2.3 true
192.168.1.5 true
123.1.11.21 false
1.1.1.1 false