Share via


ipv6_is_in_any_range()

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

Syntax

ipv6_is_in_any_range(Ipv6Address,Ipv6Range [ ,Ipv6Range ...] )

ipv6_is_in_any_range(Ipv6Address,Ipv6Ranges)

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

Parámetros

Nombre Tipo Requerido Descripción
Ipv6Address string ✔️ Expresión que representa una dirección IPv6.
Ipv6Range string ✔️ Expresión que representa un intervalo IPv6 mediante la notación de prefijo IP.
Ipv6Ranges dynamic ✔️ Matriz que contiene intervalos IPv6 mediante notación de prefijo IP.

Nota

Se requieren una o varias cadenas IPv6Range o una matriz dinámica IPv6Ranges .

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 IPv6 está en el intervalo de cualquiera de las redes IPv6 especificadas.
  • false:Lo contrario.
  • null: si la conversión de una de las dos cadenas IPv6 no se realizó correctamente.

Ejemplo

let LocalNetworks=dynamic([
    "a5e:f127:8a9d:146d:e102:b5d3:c755:f6cd/112",
    "0:0:0:0:0:ffff:c0a8:ac/60"
]);
let IPs=datatable(IP:string) [
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abcd",
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abce",
    "a5e:f127:8a9d:146d:e102:b5d3:c755:abcf",
    "a5e:f127:8a9d:146d:e102:b5d3:c756:abd1",
];
IPs
| extend IsLocal=ipv6_is_in_any_range(IP, LocalNetworks)

Salida

IP IsLocal
a5e:f127:8a9d:146d:e102:b5d3:c755:abcd True
a5e:f127:8a9d:146d:e102:b5d3:c755:abce True
a5e:f127:8a9d:146d:e102:b5d3:c755:abcf True
a5e:f127:8a9d:146d:e102:b5d3:c756:abd1 False