」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何驗證 CIDR 子網路中的 IP 位址是否包含?

如何驗證 CIDR 子網路中的 IP 位址是否包含?

發佈於2024-11-07
瀏覽:672

How to Verify IP Address Inclusion in a CIDR Subnet?

驗證CIDR 子網路中的IP 位址包含情況

要確定IPv4 位址是否屬於指定的CIDR 子網路,一種簡單的方法涉及步驟如下:

轉換為長整數:

  • 利用ip2long() 函數將IP 位址和子網路範圍轉換為長整數。

子網路遮罩衍生:

  • 若未明確提供子網路遮罩(/xx),則假定預設遮罩為/ 32。
  • 以左移 1 秒到 32 減去遮罩長度來計算子網路遮罩。

以位元比較:

  • 執行IP 長整型與子網路遮罩位元與運算。
  • 檢驗結果是否等於子網長整數。

實作:

下面的 PHP 函式封裝了這個邏輯:

function cidr_match($ip, $range)
{
    list ($subnet, $bits) = explode('/', $range);
    if ($bits === null) {
        $bits = 32;
    }
    $ip = ip2long($ip);
    $subnet = ip2long($subnet);
    $mask = -1 
版本聲明 本文轉載於:1729251256如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3