サブネット計算ツール【無料・登録不要】IPv4のネットワークアドレス・ホスト数をCIDRから計算
IPv4 の IP アドレスと CIDR(/24 など)またはサブネットマスクを入力すると、ネットワークアドレス・ブロードキャストアドレス・ホストアドレスの範囲・ホスト数・ワイルドカードマスクをすぐに計算できる無料ツールです。2 進数でネットワーク部とホスト部を色分けして表示するので、計算の仕組みも目で確かめられます。
ネットワークの設計や設定の確認、基本情報技術者試験・応用情報技術者試験のサブネットの計算問題の学習に使えます。入力したデータはお使いのブラウザの中だけで処理され、サーバーには一切送信されません。
「192.168.1.10/24」「192.168.1.10 255.255.255.0」のどちらの形でも入力できます。「/」やマスクを付けずに IP アドレスだけを入力したときは、右の「CIDR/サブネットマスク」で選んだ値を使います。
2 進数での表示
ネットワーク部 ホスト部
アドレスの種類
CIDR とサブネットマスクの対応表(/0〜/32)
| CIDR | サブネットマスク | アドレス数 | ホスト数 |
|---|
ホスト数は、ネットワークアドレスとブロードキャストアドレスの 2 つを除いた数(2 の n 乗 − 2)です。ただし /31 は RFC 3021 に従い 2 つともホストとして数え(2)、/32 はそのアドレス 1 つ(1)としています。今の計算結果の行を色付けしています。
IPv4 だけに対応しています。アドレスの種類は、IANA の「IPv4 Special-Purpose Address Registry」に載っている主な範囲で判定しています。入力したデータはブラウザ内だけで処理し、サーバーへの送信や保存は一切行いません。
使い方
IP アドレスと CIDR から計算する
- 「IP アドレス」の欄に、IP アドレスと CIDR を「/」でつないで入力します(例:192.168.10.130/26)。
- 入力と同時に、ネットワークアドレス・ブロードキャストアドレス・ホストアドレスの範囲・ホスト数などが表に表示されます。
- 結果をメモしたいときは「結果をコピー」を押すと、表の内容と 2 進数の表示をまとめてコピーできます。
サブネットマスクで入力する
「192.168.10.130 255.255.255.192」のように、IP アドレスとサブネットマスクを空白で区切って入力することもできます(「192.168.10.130/255.255.255.192」の形でも計算できます)。IP アドレスだけを入力したときは、「CIDR/サブネットマスク」の選択肢で選んだ値を使います。選択肢を変えると、入力欄の「/」のあとの数も書き換わります。
次のような入力は、意味があいまいだったり、サブネットマスクとして成り立たなかったりするため、エラーを表示します。
- 「192.168.010.1」のように先頭に 0 が付いた数:ソフトによっては 8 進数として読まれる(010 が 8 になる)ため、先頭の 0 を取って入力してください。
- 「255.0.255.0」のように 1 と 0 が連続していないマスク:サブネットマスクは、2 進数で左から 1 が続き、そのあとに 0 が続く形である必要があります。「0.0.0.255」のようなワイルドカードマスクを入力したときは、対応するサブネットマスクを案内します。
- 256 以上の数、4 つに区切られていないアドレス、/33 以上の CIDR。
結果の見方
| 項目 | 意味 | 192.168.10.130/26 の場合 |
|---|---|---|
| ネットワーク(CIDR 表記) | このサブネットを表す書き方 | 192.168.10.128/26 |
| サブネットマスク | ネットワーク部を 1、ホスト部を 0 で表した値 | 255.255.255.192 |
| ワイルドカードマスク | サブネットマスクの 0 と 1 を反転した値(ルーターのアクセス制御の設定などで使う) | 0.0.0.63 |
| ネットワークアドレス | サブネットの先頭のアドレス。サブネットそのものを表す | 192.168.10.128 |
| ブロードキャストアドレス | サブネットの末尾のアドレス。サブネット内のすべての機器あての通信に使う | 192.168.10.191 |
| ホストアドレスの範囲 | パソコンやサーバーなどの機器(ホスト)に割り当てられるアドレス | 192.168.10.129 〜 192.168.10.190 |
| ホスト数 | 割り当てられるアドレスの数 | 62 |
| アドレスの総数 | サブネットに含まれるアドレスの数 | 64 |
表の下の「2 進数での表示」では、IP アドレス・サブネットマスク・ネットワークアドレス・ブロードキャストアドレスを 32 ビットの 2 進数で表示し、ネットワーク部を青、ホスト部をオレンジで色分けします。「アドレスの種類」には、入力した IP アドレスがプライベートアドレスかどうかなどを表示します(詳しくは後の「プライベートアドレスと特別な用途のアドレス」を参照)。
ツールの下の「CIDR とサブネットマスクの対応表」を開くと、/0〜/32 のすべてのサブネットマスク・アドレス数・ホスト数を一覧で確認できます。今の計算結果の行は色付けされます。
サブネットとは?
サブネットとは、1 つのネットワークを、さらに小さく分けたネットワークのことです。たとえば会社のネットワークを「営業部」「開発部」「サーバー用」のように分けると、通信の範囲を区切って管理しやすくなり、不要な通信(ブロードキャストなど)が全体に広がるのも防げます。
IPv4 の IP アドレスは 32 ビットの数で、「192.168.10.130」のように 8 ビットずつ 4 つに区切って 10 進数で書きます。この 32 ビットを、左側の「ネットワーク部」(どのネットワークか)と右側の「ホスト部」(そのネットワークの中のどの機器か)に分けて使います。どこで分けるかを表すのが、サブネットマスクや CIDR の「/26」などの数です。
同じサブネットの中では、ネットワーク部はすべて同じで、ホスト部だけが違います。ホスト部がすべて 0 のアドレスは「ネットワークアドレス」、すべて 1 のアドレスは「ブロードキャストアドレス」として特別な意味を持つため、機器には割り当てません。そのため、機器に割り当てられるアドレスの数(ホスト数)は、2 の(ホスト部のビット数)乗 − 2 になります。
/31 と /32 のホスト数
「− 2」の数え方では、/31 のホスト数は 0、/32 は −1 になってしまいます。実際のネットワークでは、次のように扱われます。このツールもこの考え方で表示しています。
- /31:RFC 3021 で、2 台の機器を直接つなぐ回線(ポイントツーポイント)向けに、2 つのアドレスを両方ともホストアドレスとして使う方法が決められています。この場合、ブロードキャストアドレスはありません。ツールではホスト数を 2 と表示し、「2 の n 乗 − 2 で数えると 0」であることも併せて表示します。
- /32:アドレス 1 つだけを表します。ルーティングの設定で特定の 1 台を指すときなどに使います。ツールではホスト数を 1 と表示します。
試験の計算問題では、ふつう「2 の n 乗 − 2」で答えます。
CIDR 表記の読み方
CIDR(サイダー、Classless Inter-Domain Routing)表記とは、「192.168.10.128/26」のように、IP アドレスのあとに「/」とネットワーク部のビット数(プレフィックス長)を書く方法です。RFC 4632 では、この数は 0〜32 の 10 進数で、アドレスの左から何ビットがネットワーク部かを表すと説明されています。
/26 なら、左から 26 ビットがネットワーク部、残りの 32 − 26 = 6 ビットがホスト部です。サブネットマスクは、ネットワーク部を 1、ホスト部を 0 にした 32 ビットを 10 進数で書いたもので、/26 は 11111111.11111111.11111111.11000000、つまり 255.255.255.192 になります。よく使う CIDR とサブネットマスクの対応は次のとおりです。
| CIDR | サブネットマスク | アドレス数 | ホスト数 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /20 | 255.255.240.0 | 4,096 | 4,094 |
| /22 | 255.255.252.0 | 1,024 | 1,022 |
| /23 | 255.255.254.0 | 512 | 510 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
サブネットマスクの最後の 0 でない数は、128・192・224・240・248・252・254・255 のどれかになります。これは 2 進数で左から 1 を 1 つずつ増やした値(10000000、11000000、11100000……)だからです。「255.0.255.0」のように 1 と 0 が交互に並ぶマスクは、サブネットマスクとしては使えません。
なお、CIDR が広まる前は、IP アドレスの先頭の数でネットワーク部の長さが決まる「アドレスクラス」(クラス A は /8、クラス B は /16、クラス C は /24 に相当)が使われていました。RFC 4632 では、このクラスによる割り当ての仕組みをやめて、クラスにとらわれない(classless)ブロックを使うことが説明されています。ツールでは参考としてクラスも表示します。
手計算での求め方
192.168.10.130/26 を例に、手計算でネットワークアドレス・ブロードキャストアドレス・ホスト数を求めてみます。2 進数と 10 進数の変換は、基数変換ツールでも確かめられます。
方法 1:2 進数で AND(論理積)をとる
- /26 のサブネットマスクは 255.255.255.192 です。最初の 3 つは 255 なので、IP アドレスの 192.168.10 はそのままネットワーク部になります。
- 4 つ目の数を 2 進数にします。130 は 10000010、192 は 11000000 です。
- ビットごとに AND(両方が 1 のときだけ 1)をとると 10000000、つまり 128 になります。ネットワークアドレスは 192.168.10.128 です。
- ホスト部(右の 6 ビット)をすべて 1 にすると 10111111、つまり 191 になります。ブロードキャストアドレスは 192.168.10.191 です。
- ホスト部は 6 ビットなので、ホスト数は 2 の 6 乗 − 2 = 62 です。ホストアドレスの範囲は、ネットワークアドレスの次からブロードキャストアドレスの前まで(192.168.10.129 〜 192.168.10.190)です。
方法 2:ブロックの大きさで区切る(速く解くコツ)
サブネットマスクが 255 でも 0 でもない部分(/26 なら 4 つ目の 192)に注目し、256 − 192 = 64 を求めます。これが 1 つのサブネットの大きさ(ブロックの大きさ)で、4 つ目の数は 0、64、128、192 の区切りでサブネットが分かれます。
130 は 128 〜 191 の区切りに入るので、ネットワークアドレスは 192.168.10.128、ブロードキャストアドレスは次の区切りの 1 つ手前の 192.168.10.191 です。2 進数に直さなくても、引き算と区切りだけで求められます。
Python で確かめる
Python の標準ライブラリの ipaddress を使っても計算できます。対話モード(コマンドプロンプトなどで py や python と入力して起動)で、まず次の行を入力します。
import ipaddress
続けて次の行を入力すると、ネットワークアドレスを含む「IPv4Network(‘192.168.10.128/26’)」が表示されます。
ipaddress.ip_interface('192.168.10.130/26').network
ブロードキャストアドレスは、次の行で「IPv4Address(‘192.168.10.191’)」と表示されます。
ipaddress.ip_network('192.168.10.128/26').broadcast_address
プライベートアドレスと特別な用途のアドレス
IP アドレスの中には、用途が決められている範囲があります。代表的なのが、RFC 1918 で決められたプライベートアドレスです。社内 LAN や家庭内のネットワークなど、組織の中で自由に使えるアドレスで、インターネットと通信するときはルーターの NAT(アドレス変換)などで変換します。これに対して、インターネット上の通信に使われるアドレスをグローバルアドレスといいます。
このツールでは、IANA(インターネットのアドレスなどを管理する組織)の「IPv4 Special-Purpose Address Registry」などに載っている、次の主な範囲を判定して表示します。
| 範囲 | 種類 | 決めている RFC |
|---|---|---|
| 10.0.0.0/8(10.0.0.0 〜 10.255.255.255) | プライベートアドレス | RFC 1918 |
| 172.16.0.0/12(172.16.0.0 〜 172.31.255.255) | プライベートアドレス | RFC 1918 |
| 192.168.0.0/16(192.168.0.0 〜 192.168.255.255) | プライベートアドレス | RFC 1918 |
| 100.64.0.0/10 | 共有アドレス(通信事業者のキャリアグレード NAT 用) | RFC 6598 |
| 127.0.0.0/8 | ループバックアドレス(自分自身を指す。127.0.0.1 など) | RFC 1122 |
| 169.254.0.0/16 | リンクローカルアドレス(アドレスが設定されないときに自動で選ばれる) | RFC 3927 |
| 192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 | ドキュメント用アドレス(説明書などの例に使う) | RFC 5737 |
| 198.18.0.0/15 | ベンチマーク用アドレス(機器の性能試験に使う) | RFC 2544 |
| 224.0.0.0 〜 239.255.255.255 | マルチキャストアドレス(クラス D) | RFC 1112・RFC 5771 |
| 240.0.0.0/4 | 予約済み(クラス E) | RFC 1112 |
| 255.255.255.255 | リミテッドブロードキャストアドレス | RFC 919・RFC 8190 |
| 0.0.0.0/8 | 「このネットワーク」を表す特別なアドレス | RFC 791 |
172.16.0.0/12 の範囲は 172.16 〜 172.31 までで、172.32.0.0 以降はプライベートアドレスではありません。また、100.64.0.0/10 の共有アドレスは、プライベートアドレスとは別の範囲として決められています。入力したサブネットが範囲をはみ出す場合(たとえば 10.0.0.0/7)は、ツールにその旨を表示します。
基本情報・応用情報の試験での出題例
IPA(情報処理推進機構)が公開している試験のシラバス(出題範囲を詳しく示した資料)では、基本情報技術者試験(Ver.9.2)・応用情報技術者試験(Ver.7.2)とも、「技術要素」の「ネットワーク」の「通信プロトコル」に、ネットワーク層のプロトコルの用語例として「IP アドレス」「サブネットアドレス」「サブネットマスク」「CIDR」などが含まれています。また「ネットワーク方式」の「インターネット技術」には、「アドレスクラス」「グローバル IP アドレス」「プライベート IP アドレス」「NAT」などが挙げられています。
ここでは、これらの内容を確認できる自作の例題を紹介します(実際の過去問ではありません)。このツールで答えを確かめながら、手計算でも解いてみてください。
例題 1:ネットワークアドレスとブロードキャストアドレスを求める
問題:IP アドレス 172.16.37.200/20 のネットワークアドレスとブロードキャストアドレスを答えなさい。
答え:ネットワークアドレスは 172.16.32.0、ブロードキャストアドレスは 172.16.47.255。/20 のサブネットマスクは 255.255.240.0 で、3 つ目の数に注目すると 256 − 240 = 16 ごとに区切られます。37 は 32 〜 47 の区切りに入るので、3 つ目は 32(ネットワークアドレス)と 47(ブロードキャストアドレス)、4 つ目はそれぞれ 0 と 255 になります。
例題 2:サブネットマスクからホスト数を求める
問題:サブネットマスクが 255.255.255.224 のサブネットに、機器に割り当てられるアドレスはいくつあるか。
答え:30。224 は 2 進数で 11100000 なので、/27 でホスト部は 5 ビットです。2 の 5 乗 − 2 = 30 になります。
例題 3:サブネットに分割する
問題:172.16.0.0/16 のネットワークを /20 のサブネットに分けると、サブネットはいくつできるか。また、1 つのサブネットのホスト数はいくつか。
答え:サブネットは 16 個、ホスト数は 4,094。ネットワーク部が 16 ビットから 20 ビットに 4 ビット増えるので、サブネットの数は 2 の 4 乗 = 16 です。ホスト部は 32 − 20 = 12 ビットなので、2 の 12 乗 − 2 = 4,094 です。
例題 4:複数のネットワークを 1 つにまとめる(集約)
問題:192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 の 4 つのネットワークを、1 つの CIDR 表記にまとめなさい。
答え:192.168.0.0/22。3 つ目の数 0〜3 は 2 進数で 00000000〜00000011 なので、右の 2 ビットだけが違い、左の 6 ビットは同じです。ネットワーク部は 24 − 2 = 22 ビットになります。ツールに 192.168.0.0/22 を入力すると、ホストアドレスの範囲が 192.168.0.1 〜 192.168.3.254 になることを確かめられます。
よくある質問
入力したデータは保存されませんか?
保存されません。計算はすべてお使いのブラウザの中で行われ、サーバーへの送信も保存も行いません。ページを閉じると入力内容は消えます。社内のネットワークの IP アドレスを入力しても、外部に送られることはありません。
ホスト数がアドレスの総数より 2 少ないのはなぜですか?
サブネットの先頭のアドレス(ネットワークアドレス)と末尾のアドレス(ブロードキャストアドレス)は特別な意味を持ち、機器に割り当てられないためです。たとえば /24 ではアドレスが 256 個ありますが、機器に割り当てられるのは 254 個です。ただし、/31 と /32 は例外です(「/31 と /32 のホスト数」を参照)。
「192.168.010.1」のような入力がエラーになるのはなぜですか?
先頭に 0 が付いた数は、ソフトによって 10 進数として読むもの(10)と、8 進数として読むもの(8)があり、意味があいまいだからです。間違った計算結果を出さないよう、このツールではエラーにしています。先頭の 0 を取って「192.168.10.1」のように入力してください。
IPv6 のアドレスは計算できますか?
このツールは IPv4 だけに対応しています。IPv6 のアドレス(2001:db8::1 など)を入力すると、エラーを表示します。
関連する記事・ツール
- 基数変換ツール【無料・登録不要】2進数・8進数・10進数・16進数を相互変換|2の補数対応
- 論理演算・真理値表
- 稼働率・MTBF・MTTR 計算
- chmod 計算(Linux のパーミッション)
- HTTPステータスコード検索【無料・登録不要】404・500などの意味と原因・対処法を日本語で確認