"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como verificar a inclusão de endereços IP em uma sub-rede CIDR?

Como verificar a inclusão de endereços IP em uma sub-rede CIDR?

Publicado em 2024-11-07
Navegar:597

How to Verify IP Address Inclusion in a CIDR Subnet?

Verificando a inclusão de endereço IP em uma sub-rede CIDR

Para determinar se um endereço IPv4 se enquadra em uma sub-rede CIDR especificada, um método simples envolve o seguintes etapas:

Conversão para números inteiros longos:

  • Utilize a função ip2long() para converter o endereço IP e o intervalo de sub-rede em números inteiros longos.

Derivação da máscara de sub-rede:

  • Se a máscara de sub-rede não for fornecida explicitamente (/xx), assuma uma máscara padrão de /32.
  • Calcule a máscara de sub-rede aplicando um deslocamento à esquerda de 1s a 32 menos o comprimento da máscara.

Comparação bit a bit:

  • Execute uma operação AND bit a bit entre o inteiro longo do IP e a máscara de sub-rede.
  • Verifique se o resultado é igual ao inteiro longo da sub-rede.

Implementação:

A seguinte função PHP encapsula esta lógica:

function cidr_match($ip, $range)
{
    list ($subnet, $bits) = explode('/', $range);
    if ($bits === null) {
        $bits = 32;
    }
    $ip = ip2long($ip);
    $subnet = ip2long($subnet);
    $mask = -1 
Declaração de lançamento Este artigo foi reimpresso em: 1729251256 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3