ipcalcコマンドでIPアドレスからネットマスク、ネットワークアドレス、ブロードキャストアドレス、ホスト数を算出する
はじめに
IPアドレス/CIDR
( ex: 192.168.1.16/27
) のパターンから、特定のサブネットに所属するかを1つずつ確認する作業を行いました。
目視で1つずつ計算していたのですが、効率が悪いし何より疲れるため、かんたんにサブネットの計算ができないかと思っていたときに見つけたツールを紹介します。
検証環境
IP アドレスと CIDR からネットワークに関する情報を算出する ipcalc
コマンド
見つけたツールは、 IP アドレスと CIDR 表記の組み合わせ ( ex: 192.168.1.16/27
) からネットワークに関する情報を算出してくれる ipcalc
と言うものです。
インストール
macOS の場合、 Homebrew でかんたんにインストールできました。
Ubuntu 22.10 環境でも APT を使ってかんたんにインストールできました。
使い方
ipcalc
コマンドの引数に IP アドレス (+CIDR) を指定すると、IP アドレスが存在するネットワークの情報を逆算してくれます。
IP アドレス/CIDR
を指定
引数に IP アドレス/CIDR
を指定します。
表示されている内容は書かれている通りですが、以下のとおりです。
- ネットワークは
192.168.0.0/24
- ホストが利用可能な IP アドレスは
192.168.0.1
〜192.168.0.254
- ブロードキャストアドレスは
192.168.0.255
- ホストに割り当て可能な IP アドレスは
254
アドレス
デフォルトのカラーリングが表示に見やすいため、 スクリーンショットも貼っておきます。
以下のように、情報は見やすくカラーリングされています。
カラー | 説明 |
---|---|
青緑 | IP アドレスの 「オクテット表記」 |
黄 | IP アドレスの 「ビット表記」 |
赤 | IP アドレスの 「ビット表記」 のうち、 「サブネット」 |
紫 | IP アドレスの所属する 「クラス」 ( A/B/C/D のいずれか ) |
/
の代わりにスペースでも問題なく動作します 。
IP アドレス/ネットマスク
を指定
IP アドレス/ネットマスク
の形式で引数を指定することもできます。
出力結果は先程と同様です。
CIDR の部分で説明したのと同じように、 /
の代わりにスペースでも問題なく動作します 。
IP アドレス/ネットマスク(16進数)
を指定
IP アドレス/ネットマスク(16進数)
の形式で引数を指定しても動作しました。
こちらもやはり /
の代わりにスペースでも問題なく動作します 。
IP アドレス/ネットマスク(否定)
を指定
ネットマスクは通常 255.255.255.0
のように、2 進数表記で左から 1 が連続する表現となります( 11111111.11111111.11111111.00000000
) 。
ネットマスクを否定した表現、つまり右から 1 が連続する表現も可能です。
255.255.255.0
を指定した場合と 0.0.0.255
を指定した場合の結果は同じになります。
カバーするホスト数の上限が見えている場合はこちらの表現が楽かもしれません 。
CIDR、ネットマスクを指定しなかった場合は?
CIDR やネットマスクを指定しなかった場合には、現在自分が所属しているネットワークのネットマスクが自動的に適用されます。
誤った IP アドレス、CIDR、ネットマスクを指定するとエラーを吐いてくれる
IP アドレス、CIDR、ネットマスクの指定に誤りがあった場合には、エラーで教えてくれます。
ひとこと
エンジニアとしてこのあたりの計算をぱぱっとできればかっこいいのでしょうが、僕は計算に時間がかかってしまいますし何より間違えそうなのでツールに頼ることにしました。
ディスカッション
コメント一覧
まだ、コメントがありません