IPアドレスの/32とは?1つだけを指す意味とプレフィックス長の一覧

「IPアドレスの32ビット表記とは何?」「192.168.1.1はどうやって32ビットになるの?」と疑問に思っている方も多いのではないでしょうか。
IPアドレスには、私たちが普段目にする「192.168.1.1」のような10進数表記だけでなく、コンピューター内部で扱われる32ビットの2進数表記があります。
この記事では、IPv4のIPアドレスがなぜ32ビットなのか、10進数表記から2進数へ変換する方法、8ビットごとの区切り(オクテット)、サブネットマスクとの関係まで、初心者向けにわかりやすく解説します。
IPアドレスの32ビット表記とは?
IPアドレスの32ビット表記とは、IPv4アドレスを32個の「0」または「1」で表現する方法です。
IPv4では、1つのIPアドレスが32ビットで構成されています。
例えば、一般的なIPv4アドレスである「192.168.1.1」を2進数に変換すると、次のようになります。
192.168.1.1
↓
11000000 10101000 00000001 00000001
つまり、次の関係になります。
192.168.1.1
↓
11000000 10101000 00000001 00000001
32ビットとは?
ビット(bit)は、コンピューターが扱う最小単位の一つで、「0」または「1」のどちらかを表します。
したがって32ビットとは、「0」または「1」を32個並べたものです。
11000000101010000000000100000001
この数字は32個の0と1から構成されています。
なぜIPv4は32ビットなの?
IPv4では、IPアドレスを32ビットで表現する仕様になっています。
1ビットでは2通り、2ビットなら4通りの組み合わせを表現できます。
1ビット
0
1
2ビット
00
01
10
11
同じように32ビットでは、232通りの組み合わせを表現できます。
2³² = 4,294,967,296
つまりIPv4では、理論上約43億個のアドレスを表現できます。
IPv4アドレスは8ビットずつ区切られている
IPv4の32ビットは、通常8ビットずつ4つに分けて表示します。
例えば、
11000000101010000000000100000001
を8ビットごとに区切ると、次のようになります。
11000000 10101000 00000001 00000001
この8ビットのまとまりをオクテット(octet)と呼びます。
IPv4は、
8ビット × 4 = 32ビット
で構成されています。
192.168.1.1を32ビット表記に変換する
ここからは、実際にIPアドレスを32ビットの2進数へ変換してみましょう。
例として、
192.168.1.1
を変換します。
IPv4では「192」「168」「1」「1」という4つの数字に分かれています。それぞれを8ビットの2進数に変換します。
| 10進数 | 2進数 |
|---|---|
| 192 | 11000000 |
| 168 | 10101000 |
| 1 | 00000001 |
| 1 | 00000001 |
これをつなげると、
11000000 10101000 00000001 00000001
となります。
したがって、
192.168.1.1
=
11000000101010000000000100000001
です。
8ビットの最大値は255
IPv4では、IPアドレスを8ビットずつ4つに分けています。
8ビットで表現できる値は、
00000000
から、
11111111
までです。
2進数の「11111111」を10進数にすると、
255
になります。
そのため、IPv4アドレスの各部分は基本的に0~255の範囲になります。
例えば、
192.168.1.1
は、192、168、1、1という4つの値で構成されています。すべて0~255の範囲に収まっています。
10進数と2進数の対応表
IPv4の32ビット表記を理解するためには、8ビットの2進数と10進数の関係を覚えておくと便利です。
| 2進数 | 10進数 |
|---|---|
| 00000000 | 0 |
| 00000001 | 1 |
| 00000010 | 2 |
| 00000011 | 3 |
| 00000100 | 4 |
| 00001000 | 8 |
| 00010000 | 16 |
| 00100000 | 32 |
| 01000000 | 64 |
| 10000000 | 128 |
| 11111111 | 255 |
特に、
128 64 32 16 8 4 2 1
という数字は重要です。
8ビットの各桁には、この値が割り当てられています。
192を2進数に変換する方法
例えば「192」を2進数に変換してみましょう。
8ビットでは、
128 64 32 16 8 4 2 1
という桁があります。
192は、
128 + 64 = 192
なので、
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0
となります。
したがって、
192 = 11000000
です。
168を2進数に変換する方法
168の場合は、
128 + 32 + 8 = 168
です。
したがって、
128 64 32 16 8 4 2 1
1 0 1 0 1 0 0 0
となります。
つまり、
168 = 10101000
です。
1を8ビットで表すと「00000001」
IPアドレスでは、各部分を8ビットにそろえて表現します。
そのため、
1
は単純に「1」と書くのではなく、
00000001
とします。
同様に、
10 → 00001010
100 → 01100100
255 → 11111111
となります。
このように、各オクテットを必ず8ビットにそろえることがポイントです。
IPアドレスの32ビット表記と10進数表記の違い
普段利用しているIPv4アドレスは、一般的にドット付き10進表記で表示されています。
192.168.1.1
一方、コンピューター内部では2進数として扱うことができます。
11000000 10101000 00000001 00000001
両者は別のIPアドレスではありません。
同じIPアドレスを異なる方法で表現しているだけです。
| 表記方法 | 例 |
|---|---|
| 10進数表記 | 192.168.1.1 |
| 2進数・32ビット表記 | 11000000101010000000000100000001 |
「/32」とは何か(1つのIPアドレスだけを指す)
CIDR表記の /32 は、32ビットすべてをネットワーク部として使うという意味です。変化できるビットが残らないので、指し示すアドレスはちょうど1個になります。
import ipaddress
n = ipaddress.ip_network("203.0.113.5/32")
print("アドレス数 :", n.num_addresses)
print("含まれるアドレス :", [str(x) for x in n])
print("ネットワークアドレス:", n.network_address)
print("ブロードキャスト :", n.broadcast_address)
print("サブネットマスク :", n.netmask)
実行結果:
アドレス数 : 1
含まれるアドレス : ['203.0.113.5']
ネットワークアドレス: 203.0.113.5
ブロードキャスト : 203.0.113.5
サブネットマスク : 255.255.255.255
ネットワークアドレスもブロードキャストアドレスもそのIP自身になります。サブネットマスクは 255.255.255.255(すべてのビットが1)です。
プレフィックス長ごとのアドレス数
| 表記 | アドレス総数 | 利用できるホスト数 | 主な用途 |
|---|---|---|---|
| /32 | 1 | 1 | 1台だけを指定する(ファイアウォールの許可、ホストルート) |
| /31 | 2 | 2 | 点対点リンク |
| /30 | 4 | 2 | 小さな接続区間 |
| /24 | 256 | 254 | 一般的な社内LAN |
| /16 | 65,536 | 65,534 | 大きな組織 |
| /8 | 16,777,216 | 16,777,214 | 非常に大きな範囲 |
/24 以下ではネットワークアドレスとブロードキャストアドレスの2つが使えないため、総数から2を引いた数がホストに割り当てられます。一方 /32 と /31 はこの引き算をしません。/31 は点対点リンク用に特別扱いされる表記です。
/32 を実際に見かける場面
- ファイアウォールやセキュリティグループの設定。「このIPからのアクセスだけ許可する」を
203.0.113.5/32と書く - ルーティングテーブルのホストルート。特定の1台だけ別の経路へ送りたいときに使う
- クラウドの設定画面。IPを1つ入力する欄で
/32を付けるよう求められることがある - ログやアクセス制限の記述。単独のIPでもCIDR表記で揃えるため
/32を付ける
「IPを1つだけ指定したいのに、なぜ /32 と書くのか」という疑問の答えは、表記をCIDRで統一するためです。203.0.113.5 と書けば済む場面でも、設定ファイルや管理画面がCIDR形式を要求するなら /32 を付けます。
なお32ビットで表せるアドレスの総数は次のとおりです。
print(2 ** 32)
実行結果:
4294967296
約43億個です。/32 はこの43億のうち1つだけを指す、ということになります。
IPアドレスの32ビットとサブネットマスク
32ビットという考え方は、サブネットマスクを理解するうえでも非常に重要です。
例えば、
IPアドレス
192.168.1.10
サブネットマスク
255.255.255.0
が設定されているとします。
サブネットマスクを2進数にすると、
11111111 11111111 11111111 00000000
です。
このうち、
11111111 11111111 11111111
にあたる24ビットがネットワーク部分、
00000000
にあたる8ビットがホスト部分になります。
そのため、
255.255.255.0
はCIDR表記では、
/24
と表現できます。
「/24」とは24ビットという意味
ネットワーク設定でよく見かける、
192.168.1.10/24
という表記があります。
この「/24」は、先頭から24ビットがネットワーク部であることを意味します。
32ビットのIPv4アドレスを、
ネットワーク部 | ホスト部
に分けると、
24ビット | 8ビット
となります。
11111111 11111111 11111111 | 00000000
<------ ネットワーク ------> <-ホスト->
32ビット表記を理解するメリット
IPアドレスを32ビットで理解できるようになると、ネットワークの仕組みをより深く理解できます。
1. サブネットを理解しやすくなる
サブネットマスクやCIDR表記は、ビット単位で考えると理解しやすくなります。
例えば、
/24
/25
/26
/27
などの違いも、「ネットワーク部として何ビット使用するのか」と考えられます。
2. ネットワークアドレスを計算できる
IPアドレスとサブネットマスクを2進数に変換すると、AND演算によってネットワークアドレスを求められます。
例えば、
IPアドレス
11000000 10101000 00000001 00001010
サブネットマスク
11111111 11111111 11111111 00000000
の場合、
11000000 10101000 00000001 00000000
となり、
192.168.1.0
がネットワークアドレスだと分かります。
3. ネットワークエンジニアリングの基礎になる
IPアドレスの32ビット構造は、次のようなネットワーク技術を理解するための基礎知識です。
- TCP/IP
- ルーティング
- サブネット
- CIDR
- ネットワークアドレス
- ブロードキャストアドレス
IPv4とIPv6ではビット数が違う
ここで注意したいのが、IPv4とIPv6ではIPアドレスのビット数が異なることです。
IPv4は、
32ビット
です。
一方、IPv6は、
128ビット
です。
| 項目 | IPv4 | IPv6 |
|---|---|---|
| アドレス長 | 32ビット | 128ビット |
| 表記例 | 192.168.1.1 | 2001:db8::1 |
| 組み合わせ | 232 | 2128 |
| 主な表記 | 10進数+ドット | 16進数+コロン |
IPv4では約43億個のアドレスを表現できますが、インターネットの普及によってIPv4アドレスは不足するようになりました。
そのため、より多くのアドレスを扱えるIPv6が登場しました。
IPアドレスの32ビット表記を覚えるポイント
ポイント1:IPv4は32ビット
IPv4のIPアドレスは32ビットで構成されています。
ポイント2:8ビットずつ4つに分ける
8ビット × 4 = 32ビット
この8ビットのまとまりをオクテットと呼びます。
ポイント3:各オクテットは0~255
8ビットで表現できる範囲は0~255です。
ポイント4:10進数表記と2進数表記は同じIPアドレス
例えば、
192.168.1.1
と、
11000000 10101000 00000001 00000001
は同じIPアドレスです。
ポイント5:サブネットマスクも32ビット
IPv4のサブネットマスクも32ビットで構成されます。
そのため、IPアドレスの32ビット構造を理解すると、CIDRやサブネット計算も理解しやすくなります。
あわせて読みたい
「情報I」の出題は分野をまたいで関連づけて問われるのが特徴です。あわせてIPアドレスとは?仕組み・種類・確認方法をわかりやすく解説|住所との違いとPythonでの判定、IPv4とIPv6の違いとは?わかりやすい比較表で、DNCLとは?大学入学共通テスト「情報」のプログラミング問題で使われる表記を初心者向けに解説も参考になります。
共通テストの出題範囲と勉強法は【情報Ⅰ】コンピュータとプログラミングの対策にまとめています。
まとめ:IPアドレスの32ビット表記を理解しよう
IPアドレスの「32ビット表記」とは、IPv4アドレスを32個の0と1で表現する方法です。
例えば、
192.168.1.1
は、
11000000 10101000 00000001 00000001
と表現できます。
IPv4では32ビットを8ビットずつ4つに分割するため、通常は「192.168.1.1」のようなドット付き10進数で表示されます。
「8ビット×4=32ビット」「1オクテット=0~255」という2点を押さえると、IPアドレスの仕組みが理解しやすくなります。
さらに、32ビットの考え方はサブネットマスク、CIDR、ネットワークアドレス、ブロードキャストアドレスなどを学ぶ際にも欠かせません。
プログラミングやネットワークを学ぶなら、まずはIPv4の32ビット構造をしっかり理解しておきましょう。






