当社のデータセンターは、すべてのマシンから JSON ダンプを提供し、独自の在庫管理システムにインポートします。これは (192.168.1.1/26) などの IP ブロックを提供しますが、何百ものブロックをインポートしているので、ネットマスクとゲートウェイも計算したいと思います。
PHP Doxygen のネットワーク機能を調べましたが、これを行う方法を見つけることができませんでした。IP ブロックからネットマスク/ゲートウェイを計算するにはどうすればよいですか?
当社のデータセンターは、すべてのマシンから JSON ダンプを提供し、独自の在庫管理システムにインポートします。これは (192.168.1.1/26) などの IP ブロックを提供しますが、何百ものブロックをインポートしているので、ネットマスクとゲートウェイも計算したいと思います。
PHP Doxygen のネットワーク機能を調べましたが、これを行う方法を見つけることができませんでした。IP ブロックからネットマスク/ゲートウェイを計算するにはどうすればよいですか?
次のようなものを使用して、IP とマスクを計算できます。
$ip_with_mask = '192.168.1.1/26';
list($ip, $mask_int) = explode('/', $ip_with_mask);
$mask_nr = (pow(2, $mask_int) - 1) << (32 - $mask_int);
//pow(2, $x) - 1 changes the number to a number made of that many set bits
//and $y << (32 - $x) shifts it to the end of the 32 bits
$mask = long2ip($mask_nr);
$subnet_ip = long2ip(ip2long($ip) & $mask_nr);
$gateway_ip = long2ip((ip2long($ip) & $mask_nr) + 1);