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)です。

プレフィックス長ごとのアドレス数

表記アドレス総数利用できるホスト数主な用途
/32111台だけを指定する(ファイアウォールの許可、ホストルート)
/3122点対点リンク
/3042小さな接続区間
/24256254一般的な社内LAN
/1665,53665,534大きな組織
/816,777,21616,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ビット構造をしっかり理解しておきましょう。

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら