フォーラムを検索してみましたが、どこにも見つかりませんでした。CIDR ブロックを完全に分解するものを見つけましたが、2 つの機能が別々に必要です。
最初の関数は、/24 より大きい CIDR ブロックを受け取り、それを /24 ブロックに分割します。
私が実際にほとんど行った 2 番目の関数は、各 /24 を 256 個の IP アドレスに分割します。その答えはここにあります。 PHPで特定のIP範囲を爆発させる
そのため、/23 以上の CIDR ブロックが渡される関数を作成し、それを /24 に分割する方法を理解しようとしています。
例:
入力: BreakTo24(10.0.0.0/22)
出力:
10.0.0.0/24
10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
編集:コードの試行を投稿していないことに気付きました。これにより、おそらくこれを支援することがより困難になります。コードは次のとおりです。
function BreakTo24($CIDR){
$CIDR = explode ("/", $CIDR);
//Math to determine if the second part of the array contains more than one /24, and if so how many.