CIDR・IPサブネット計算機
IPv4・IPv6ネットワークの範囲、マスク、サイズを計算し、サブネットに分割して、包含や重複を確認できます。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const cidr = '192.168.1.0/24'
const ip = '192.168.1.42'
const toNumber = (address) => address.split('.').reduce((total, octet) => total * 256 + Number(octet), 0)
const [network, prefix] = cidr.split('/')
const size = 2 ** (32 - Number(prefix))
const contains = Math.floor(toNumber(ip) / size) === Math.floor(toNumber(network) / size)
console.log(contains)概要
IPv4 と IPv6 のネットワークについて、範囲、ネットマスク、ワイルドカード、サイズを計算します。ネットワークをサブネットに分割したり、何が何を含むか、重複するかを調べたりもできます。計算はすべて正確なので、IPv6 でも使えます。
使い方
- 1行に1つずつネットワークを入力または貼り付けます。例:
192.168.1.0/24、2001:db8::/32。アドレスだけの場合は単一のホストとして扱われ、/255.255.255.0のような IPv4 のネットマスクも使えます。 - モードを選びます。詳細は各ネットワークの範囲とサイズを表示し、分割は選んだプレフィックスのサブネットに分け、包含はアドレスが各ネットワークに含まれるかを調べ、重複は入れ子になっているネットワークを見つけます。
- 出力欄の下で、最初のネットワークの詳細を確認します。マスク、ワイルドカード、利用可能なホスト、アドレスの種類が表示されます。
例
192.168.1.77/24 → 192.168.1.0/24 · 192.168.1.0–192.168.1.255 · 256
10.0.0.0/24 を /26 に分割した結果です。
10.0.0.0/26
10.0.0.64/26
10.0.0.128/26
10.0.0.192/26
知っておくと便利なこと
- /24 には256個のアドレスがあり、ビットが1つ減るごとに2倍になります。
- IPv4 では最初と最後のアドレスがネットワークアドレスとブロードキャストアドレスなので、/24 の利用可能なホストは254個です。/31(RFC 3021)と /32 はすべてのアドレスを使います。
- /64 は、IPv6 の1つのネットワークの一般的なサイズです。
- 分割したときに一覧表示されるサブネットは、最大1024個です。
CIDR表記とは?
CIDRはネットワークを「アドレス/プレフィックス長」で表します。192.168.1.0/24 なら、先頭24ビットがネットワーク、残りがホストです。/24 は256アドレスで、ビットが1つ減るごとに倍になります。IPv6も128ビットで同じ仕組みで、/64 が1つのネットワークの一般的な大きさです。
よくある質問
IPv4サブネットで2つのアドレスが使えないのはなぜ?
最初のアドレスはネットワークを、最後はブロードキャストを表すため、/24 の利用可能なホストは254です。/31 のポイントツーポイント(RFC 3021)や /32 の単一ホストはすべてのアドレスを使います。
分割とは?
ネットワークを同じ大きさの小さなネットワークに切り分けます。10.0.0.0/24 を /26 に分割すると、64アドレスずつの4つのサブネットになります。表示は最大1024サブネットです。
ネットワークはどこかに送信される?
いいえ。計算はすべてブラウザ内で、正確な整数演算で行われるためIPv6にも対応します。入力した内容が当社のサーバーに送信されることはありません。