IPアドレスとネットマスクからネットワークアドレスとブロードキャストアドレスを調べる

土日はどこのサイトも更新が少なくてお昼が寂しいフジカワです。やっぱり皆さん休みたいですよね。僕もです。

紙資料が見つからない

サーバをちょっといじってるのだけど、設定項目で「ネットワークアドレス」と「ブロードキャストアドレス」が必要になる。どこかに資料はあると思うのだけど探すのがメンドクサイ。googleで便利なコマンドを探しに出かけたところ、コマンドではないけれど簡単な方法を見つけたのでご紹介。

php使いますよー

ftpか何かでphpファイルをアップロードする必要がありますので、環境がある方のみになってしまいますが、それができれば簡単です。
っていうか、ファイルをアップしたので、こちらからも調べられます。
ネットワークアドレスとブロードキャストアドレスを調べよう
装飾は一切無しです。文字化けしてたらすいません。(それでもなんとなくわかると思いますが)

アップするファイルは2点

index.php

<title>ネットワークアドレスとブロードキャストアドレスを調べよう</title>
<form action="view_address_info.php" method="post">
IP Address:
    <input type="text" name="ip[]">.
    <input type="text" name="ip[]">.
    <input type="text" name="ip[]">.
    <input type="text" name="ip[]">/
    <input type="text" name="mask">
    <input type="submit" value="表示">
</form>

view_address_info.php

<title>ネットワークアドレスとブロードキャストアドレスを調べよう</title>
<?php
$ip = $_POST['ip'];
$netMask = array();
$maskWork = 0;
for($i = 1; $i <= 32; $i++)
{
    $maskWork = $maskWork << 1;
    if ($i <= $_POST['mask']) {
        $maskWork += 1;
    } else {
        $maskWork += 0;
    }
    if ($i % 8 == 0) {
        $netMask[] = $maskWork;
        $maskWork = 0;
    }
}

$networkAddress = array();
foreach ($ip as $i => $octet) {
    $networkAddress[] = $octet & $netMask[$i];
}

$broadcastAddress = array();
foreach ($networkAddress as $i => $octet) {
    $broadcastAddress[] = $octet | (~$netMask[$i] & 255);
}

print('ネットワークアドレス:');
foreach ($networkAddress as $i => $address) {
    if ($i > 0) {
        print('.');
    }
    print($address);
}
print_r('<br />');

print('ブロードキャストアドレス:');
foreach ($broadcastAddress as $i => $address) {
    if ($i > 0) {
        print('.');
    }
    print($address);
}
print_r('<br />');

meta要素等、必要な情報は各自入れてください。ほんと適当ですいません(笑)。

参考サイト
codeなにがし::IPアドレスとサブネットマスクからネットワークアドレスとブロードキャストアドレスを調べる

コメントを残してみる

コメント