IPv6 CIDR・アドレス範囲計算
IPv6 のアドレスをプレフィックス長つき(CIDR 表記)で入力すると、ネットワーク・最初と最後のアドレス・アドレスの総数を計算し、アドレスを正規の表記に直します。
計算方法
IPv6 アドレスは 128 ビットです。プレフィックス長 n は、左から n ビットがネットワークを表すことを意味します。
- ネットワークのアドレス = アドレスの、右側の(128 − n)ビットを 0 にしたもの
- 最後のアドレス = ネットワークのアドレスの、右側の(128 − n)ビットを、すべて 1 にしたもの
- アドレスの総数 = 2 の(128 − n)乗
- /64 のサブネットの数 = 2 の(64 − n)乗(n が 64 以下のとき)
128 ビットの整数(BigInt)で計算するので、誤差は出ません。プレフィックス長 0(すべてのアドレス)から 128(1 つのアドレス)まで、すべて計算できます。IPv6 にはブロードキャストアドレスがないので、IPv4 のサブネット計算(サブネット計算(IPv4))のような、ブロードキャストアドレスや、利用できるホスト数(総数 − 2)は表示しません。範囲は、最初のアドレスと最後のアドレスで表します。
アドレスの書き方(RFC 4291)
IPv6 アドレスは、次の書き方ができます(RFC 4291 の 2.2)。
- 8 つのグループを「:」で区切る:
2001:db8:0:0:8:800:200c:417a。各グループは 1〜4 桁の 16 進数で、先頭の 0 は省けます。 - 「::」で、0 のグループを省略する:「::」は、1 つ以上の 16 ビットの 0 のグループを表し、1 つのアドレスに 1 回だけ使えます。先頭・末尾にも使えます(
2001:db8::8:800:200c:417a・::1・::)。 - 末尾の 32 ビットを IPv4 の書き方にする:
::ffff:192.0.2.1(IPv4 の部分は、先頭に 0 を付けない 4 つの数)。
プレフィックスは、アドレス/プレフィックス長 と書きます(RFC 4291 の 2.3)。左のアドレスには、ホスト部の 0 でないビットがあってもかまいません。このツールは、ネットワークのアドレスに直して表示します。
正規化(RFC 5952)
同じアドレスでも、書き方がたくさんあるため、RFC 5952 が、1 つの正規の表記を決めています。このツールの「正規化したアドレス」は、この規則で整えます。
- 各グループの先頭の 0 は、必ず省く(
2001:0db8::0001→2001:db8::1)。1 つのグループが 0000 のときは、0と書きます。 - 「::」は、できるだけ長く使う(
2001:db8:0:0:0:0:2:1→2001:db8::2:1)。 - 「::」を、1 つだけの 0 のグループに使わない(
2001:db8:0:1:1:1:1:1が正しく、2001:db8::1:1:1:1:1は誤りです)。 - 「::」にできる場所が複数あるときは、いちばん長い 0 の連続を省く(
2001:0:0:1:0:0:0:1→2001:0:0:1::1)。長さが同じときは、最初の連続を省く(2001:db8:0:0:1:0:0:1→2001:db8::1:0:0:1)。 - a〜f は、小文字で書く(
2001:DB8::1→2001:db8::1)。
IPv4-mapped IPv6 アドレス(::ffff:0:0/96 の範囲)は、RFC 5952 の 5 章で、IPv4 の部分を 10 進数にした混ぜた書き方(::ffff:192.0.2.1)が推奨されています。このツールは、IPv4-mapped の範囲のアドレスのときだけ、参考として混ぜた書き方も表示します(それ以外のアドレスでは、表示しません)。
計算例
- 2001:db8::1/64 → ネットワーク
2001:db8::/64、最初2001:db8::、最後2001:db8::ffff:ffff:ffff:ffff、アドレス数 18,446,744,073,709,551,616(2 の 64 乗)、/64 のサブネット 1 個 - 2001:db8::/32 → /64 のサブネットは 2 の 32 乗(4,294,967,296)個
- 2001:db8::1/127 → アドレス 2 つ(
2001:db8::と2001:db8::1)。/127 は、ルーター間のポイントツーポイントのリンクで使われます(RFC 6164) - 2001:db8::1/128 → 1 つのアドレス
- ::/0 → すべてのアドレス(2 の 128 乗)
- ::ffff:192.0.2.1/128 → 正規化
::ffff:c000:201、混ぜた書き方::ffff:192.0.2.1
サブネットの最初のアドレス
サブネットの最初のアドレス(インターフェース ID がすべて 0)は、Subnet-Router エニーキャストアドレスとして予約されています(RFC 4291 の 2.6.1)。すべてのルーターは、接続しているサブネットのこのアドレスに対応する必要があります。
注意点
- プレフィックス長は、必ず入力します(「/64」など。0〜128 の整数で、「/064」のように先頭に 0 を付けた数は使えません)。
- ゾーン ID(
fe80::1%eth0の%eth0)、角括弧つきの書き方([2001:db8::1])は、対応していません。アドレスの種類(グローバル・リンクローカルなど)の判定も、していません。 - 全角の数字・記号は、半角に直して読み取ります。
- 例のアドレスは、ドキュメント用に予約された
2001:db8::/32(RFC 3849)です。 - 進数の変換は進数変換、IPv4 のサブネットはサブネット計算(IPv4)で求められます。
出典と確認日
書き方・正規化・予約アドレスの説明は、次の RFC で確認しました(2026年10月29日確認)。
- RFC 4291 IPv6 Addressing Architecture(2.2 書き方、2.3 プレフィックス、2.5.5.2 IPv4-mapped、2.6.1 Subnet-Router エニーキャスト)
- RFC 5952 A Recommendation for IPv6 Address Text Representation(4 章 正規の表記、5 章 特殊なアドレス、7 章 プレフィックス)
- RFC 3849 IPv6 Address Prefix Reserved for Documentation
- RFC 6164 Using 127-Bit IPv6 Prefixes on Inter-Router Links
よくある質問
IPv6 のブロードキャストアドレスは、どれですか?
IPv6 には、ブロードキャストアドレスがありません。IPv4 のブロードキャストに相当する機能は、マルチキャストで行われます。このツールは、範囲の最初のアドレスと最後のアドレスを表示します。
「::」は、何を表しますか?
1 つ以上の、0 が続く 16 ビットのグループです。1 つのアドレスに 1 回だけ使えます。正規の表記(RFC 5952)では、2 つ以上続く 0 のうち、最も長い連続(同じ長さなら最初)に使い、1 つだけの 0 には使いません。
/64 のアドレスは、いくつありますか?
2 の 64 乗(18,446,744,073,709,551,616)個です。
同じアドレスで、書き方が違うのは、なぜですか?
先頭の 0 を省いても、省かなくてもよく、「::」の位置や大文字・小文字も、いろいろな書き方ができるためです。RFC 5952 の正規の表記に直すと、同じアドレスは、同じ文字列になります。