Partilhar via


ipv4_is_in_any_range()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Verifica se o endereço de cadeia de caracteres IPv4 está em qualquer um dos intervalos de endereços IPv4 especificados.

Dicas de desempenho

Observação

Quando mais de 128 termos de pesquisa são usados, a otimização de pesquisa de índice de texto é desabilitada, o que pode levar a um desempenho de consulta reduzido.

Sintaxe

ipv4_is_in_any_range(Endereço , IPv4 Intervalo IPv4 [ , Intervalo IPv4 ...] )

ipv4_is_in_any_range(Endereço , IPv4 Intervalos IPv4 )

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
Endereço IPv4 string ✔️ Uma expressão que representa um endereço IPv4.
Faixa IPv4 string ✔️ Um intervalo IPv4 ou uma lista de intervalos IPv4 gravados com notação de prefixo IP.
Intervalos IPv4 dynamic ✔️ Uma matriz dinâmica contendo intervalos IPv4 gravados com notação de prefixo IP.

Observação

É necessária uma ou mais cadeias de caracteres IPv4Range ou uma matriz dinâmica IPv4Ranges .

Notação de prefixo IP

A notação de prefixo IP (também conhecida como notação CIDR) é uma maneira concisa de representar um endereço IP e sua máscara de rede associada. O formato é <base IP>/<prefix length>, onde o comprimento do prefixo é o número de bits 1 à esquerda na máscara de rede. O comprimento do prefixo determina o intervalo de endereços IP que pertencem à rede.

Para IPv4, o comprimento do prefixo é um número entre 0 e 32. Portanto, a notação 192.168.2.0/24 representa o endereço IP 192.168.2.0 com uma máscara de rede de 255.255.255.0. Essa máscara de rede tem 24 bits 1 à esquerda ou um comprimento de prefixo de 24.

Para IPv6, o comprimento do prefixo é um número entre 0 e 128. Portanto, a notação fe80::85d:e82c:9446:7994/120 representa o endereço IP fe80::85d:e82c:9446:7994 com uma máscara de rede de ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Essa máscara de rede tem 120 bits 1 à esquerda ou um comprimento de prefixo de 120.

Devoluções

  • true: Se o endereço IPv4 estiver no intervalo de qualquer uma das redes IPv4 especificadas.
  • false:Caso contrário.
  • null: Se a conversão de uma das duas cadeias de caracteres IPv4 não for bem-sucedida.

Exemplos

Sintaxe usando lista de strings

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')

Saída

Resultado
true

Sintaxe usando matriz dinâmica

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

Saída

Resultado
true

Estender tabela com verificação 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)

Saída

IP ÉLocal
10.1.2.3 true
192.168.1.5 true
123.1.11.21 false
1.1.1.1 false