ipv4_is_in_any_range()
Verifica se o endereço de cadeia IPv4 está em qualquer um dos intervalos de endereços IPv4 especificados.
Syntax
ipv4_is_in_any_range(
Endereço Ipv4,
Ipv4Range [ ,
Ipv4Range ...] )
ipv4_is_in_any_range(
Endereço Ipv4,
Ipv4Ranges)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
Endereço Ipv4 | string |
✔️ | Uma expressão que representa um endereço IPv4. |
Ipv4Range | string |
✔️ | Um intervalo IPv4 ou uma lista de intervalos IPv4 escritos com notação de prefixo IP. |
Ipv4Ranges | dynamic |
✔️ | Uma matriz dinâmica que contém intervalos IPv4 escritos com notação de prefixo IP. |
Nota
É necessária uma ou mais cadeias 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 forma concisa de representar um endereço IP e a máscara de rede associada. O formato é <base IP>/<prefix length>
, em que o comprimento do prefixo é o número de 1 bits à 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. Assim, 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. Esta máscara de rede tem 24 bits à esquerda ou um comprimento de prefixo de 24.
Para IPv6, o comprimento do prefixo é um número entre 0 e 128. Assim, a notação fe80::85d:e82c:9446:7994/120 representa o endereço IP fe80::85d:e82c:9446:7994 com um netmask de ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Esta máscara de rede tem 120 bits à 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 para uma das duas cadeias IPv4 não tiver sido bem-sucedida.
Exemplos
Sintaxe com a lista de cadeias
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 com 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 |
Expandir 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 | IsLocal |
---|---|
10.1.2.3 | true |
192.168.1.5 | true |
123.1.11.21 | false |
1.1.1.1 | false |
Conteúdo relacionado
- Descrição geral das funções IPv4/IPv6
- Descrição geral das funções de correspondência de texto IPv4
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários