Heim > Backend-Entwicklung > PHP-Tutorial > Wie überprüft man die Einbindung einer IP-Adresse in ein CIDR-Subnetz?

Wie überprüft man die Einbindung einer IP-Adresse in ein CIDR-Subnetz?

Patricia Arquette
Freigeben: 2024-10-18 19:35:03
Original
708 Leute haben es durchsucht

How to Verify IP Address Inclusion in a CIDR Subnet?

Überprüfen der Einbindung von IP-Adressen in ein CIDR-Subnetz

Um festzustellen, ob eine IPv4-Adresse in ein bestimmtes CIDR-Subnetz fällt, umfasst eine einfache Methode die Folgende Schritte:

Konvertierung in lange Ganzzahlen:

  • Verwenden Sie die Funktion ip2long(), um sowohl die IP-Adresse als auch den Subnetzbereich in lange Ganzzahlen umzuwandeln.

Ableitung der Subnetzmaske:

  • Wenn die Subnetzmaske nicht explizit angegeben wird (/xx), nehmen Sie eine Standardmaske von /32 an.
  • Berechnen Sie die Subnetzmaske, indem Sie eine Linksverschiebung von 1s bis 32 minus der Maskenlänge anwenden.

Bitweiser Vergleich:

  • Durchführen eine bitweise UND-Verknüpfung zwischen der IP-Long-Ganzzahl und der Subnetzmaske.
  • Überprüfen Sie, ob das Ergebnis gleich der Subnetz-Long-Ganzzahl ist.

Implementierung:

Die folgende PHP-Funktion kapselt diese Logik:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie überprüft man die Einbindung einer IP-Adresse in ein CIDR-Subnetz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage