サンプルコード
<?php $nIp = ip2long('192.168.0.1'); $nMask = ip2long('255.255.255.0'); $nNetwork = $nIp & $nMask; $nBroadcast = $nIp | ~$nMask; //ネットワークアドレス var_dump(long2ip($nNetwork)); //ブロードキャストアドレス var_dump(long2ip($nBroadcast)); ?>
//ネットワークアドレス string(11) "192.168.0.0" //ブロードキャストアドレス string(13) "192.168.0.255"
<?php /** * IPアドレス変換(10進数→2進数) * 引数:対象 * 戻値:結果 */ function _chgIPDecToBin($p_sValue) { $sConvert = false; $arrWk = explode('.', $p_sValue); if (count($arrWk) === 4) { $sWk = ''; foreach ($arrWk as $key=>$row) { $sWk .= sprintf('%08b', $row); } $arrWk2 = str_split($sWk, 8); $sConvert = implode(' ', $arrWk2); } return $sConvert; } //IPアドレス var_dump(_chgIPDecToBin('192.168.0.1')); //サブネットマスク var_dump(_chgIPDecToBin('255.255.255.0')); //ネットワークアドレス var_dump(_chgIPDecToBin('192.168.0.0')); //ブロードキャストアドレス var_dump(_chgIPDecToBin('192.168.0.255')); ?>
//IPアドレス string(35) "11000000 10101000 00000000 00000001" //サブネットマスク string(35) "11111111 11111111 11111111 00000000" //ネットワークアドレス string(35) "11000000 10101000 00000000 00000000" //ブロードキャストアドレス string(35) "11000000 10101000 00000000 11111111"