Maison > développement back-end > tutoriel php > Comment vérifier l'inclusion d'une adresse IP dans un sous-réseau CIDR ?

Comment vérifier l'inclusion d'une adresse IP dans un sous-réseau CIDR ?

Patricia Arquette
Libérer: 2024-10-18 19:35:03
original
752 Les gens l'ont consulté

How to Verify IP Address Inclusion in a CIDR Subnet?

Vérification de l'inclusion d'une adresse IP dans un sous-réseau CIDR

Pour déterminer si une adresse IPv4 appartient à un sous-réseau CIDR spécifié, une méthode simple implique le étapes suivantes :

Conversion en entiers longs :

  • Utilisez la fonction ip2long() pour convertir à la fois l'adresse IP et la plage de sous-réseau en entiers longs.

Dérivation du masque de sous-réseau :

  • Si le masque de sous-réseau n'est pas explicitement fourni (/xx), supposez un masque par défaut de /32.
  • Calculez le masque de sous-réseau en appliquant un décalage vers la gauche de 1 s à 32 moins la longueur du masque.

Comparaison au niveau des bits :

  • Effectuer une opération ET au niveau du bit entre l'entier long IP et le masque de sous-réseau.
  • Vérifiez si le résultat est égal à l'entier long du sous-réseau.

Mise en œuvre :

La fonction PHP suivante encapsule cette logique :

<code class="php">function cidr_match($ip, $range)
{
    list ($subnet, $bits) = explode('/', $range);
    if ($bits === null) {
        $bits = 32;
    }
    $ip = ip2long($ip);
    $subnet = ip2long($subnet);
    $mask = -1 << (32 - $bits);
    $subnet &= $mask;
    return ($ip & $mask) == $subnet;
}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal