「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CIDR サブネットに IP アドレスが含まれていることを確認するにはどうすればよいですか?

CIDR サブネットに IP アドレスが含まれていることを確認するにはどうすればよいですか?

2024 年 11 月 7 日に公開
ブラウズ:856

How to Verify IP Address Inclusion in a CIDR Subnet?

CIDR サブネットに IP アドレスが含まれていることを確認する

IPv4 アドレスが指定された CIDR サブネット内にあるかどうかを確認するには、次のような簡単な方法があります。次の手順:

長整数への変換:

  • ip2long() 関数を使用して、IP アドレスとサブネット範囲の両方を長整数に変換します。

サブネット マスクの導出:

  • サブネット マスクが明示的に指定されていない場合 (/xx)、デフォルト マスク /32 を想定します。
  • 1 秒の左シフトを 32 からマスク長を引いた値に適用して、サブネット マスクを計算します。

ビットごとの比較:

  • 実行IP 長整数とサブネット マスクの間のビット単位の AND 演算。
  • 結果がサブネット長整数と等しいかどうかを確認します。

実装:

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