Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Kemasukan Alamat IP dalam Subnet CIDR?

Bagaimana untuk Mengesahkan Kemasukan Alamat IP dalam Subnet CIDR?

Patricia Arquette
Patricia Arquetteasal
2024-10-18 19:35:03599semak imbas

How to Verify IP Address Inclusion in a CIDR Subnet?

Mengesahkan Kemasukan Alamat IP dalam Subnet CIDR

Untuk menentukan sama ada alamat IPv4 termasuk dalam subnet CIDR tertentu, kaedah mudah melibatkan langkah berikut:

Penukaran kepada Integer Panjang:

  • Gunakan fungsi ip2long() untuk menukar alamat IP dan julat subnet kepada integer panjang.

Terbitan Topeng Subnet:

  • Jika topeng subnet tidak diberikan secara eksplisit (/xx), anggap topeng lalai sebanyak /32.
  • Kira subnet mask dengan menggunakan anjakan kiri 1s hingga 32 tolak panjang topeng.

Perbandingan Bitwise:

  • Lakukan operasi AND bitwise antara integer panjang IP dan topeng subnet.
  • Semak sama ada keputusannya sama dengan integer panjang subnet.

Pelaksanaan:

Fungsi PHP berikut merangkumi logik ini:

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

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Kemasukan Alamat IP dalam Subnet CIDR?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn