IPアドレス・CIDR計算
ファイアウォールや .htaccess の許可リストを書くとき、社内ネットワークを分割するとき、IPv6 の表記を確かめたいときに。
🔒 入力内容はお使いのブラウザ内だけで処理され、サーバーには送信されません。
IPv4
-ネットワークアドレス
-ブロードキャスト
-最初のホスト
-最後のホスト
-ホスト数(割り当て可能)
-アドレス数
-サブネットマスク
-ワイルドカードマスク
-種別
IP アドレスが範囲に含まれるか
サブネット分割
.htaccess 用の許可行
IPv6
使い方
- IPv4 の欄に
192.168.1.0/24のように CIDR を入力します。10.0.0.5 255.255.255.0のようにマスクを空白で区切って書いても読み取ります。 - ネットワークアドレス、ブロードキャスト、ホストの範囲と数、サブネットマスク、ワイルドカードがすぐに表示されます。
- 「含まれるか」に IP を 1 行ずつ入れると、上の CIDR に含まれるかを判定します。
- 「サブネット分割」で分割後のプレフィックス長を選ぶと、各ネットワークを一覧にします。
- IPv6 の欄にアドレスを入れると、展開形、圧縮形、プレフィックスの範囲を表示します。
計算の決まり
| 項目 | 計算 |
|---|---|
| ネットワークアドレス | IP とサブネットマスクのビットごとの AND |
| ブロードキャスト | ホスト部をすべて 1 にしたもの |
| ホストの範囲・数 | ネットワーク +1 からブロードキャスト −1 まで(アドレス数 − 2)。/31 は 2 アドレスとも、/32 は 1 アドレスをホストとして扱います(RFC 3021) |
| ワイルドカードマスク | サブネットマスクのビット反転。Cisco の ACL などで使います |
| 種別 | プライベート(10/8、172.16/12、192.168/16)、ループバック、リンクローカル、CGNAT(100.64/10)などを表示 |
| サブネット分割 | 元より大きいプレフィックス長を選びます。1024 件を超える場合は先頭 1024 件だけ表示 |
| IPv6 | :: や IPv4 埋め込み(::ffff:192.0.2.1)を読み取り、128 ビットで計算。圧縮形は RFC 5952 の推奨表記(小文字、最長の 0 の並びを ::)です |
こんな時に
- .htaccess やファイアウォールで社内からだけ許可したい: 社内の固定 IP を入れ、出力された
Require ip行を貼り付けます。 - VPC やオフィスのネットワークを分けたい: /24 を /26 に分割すると 4 つのサブネットの範囲が一覧になります。
- アクセスログの IP がどの範囲か調べたい: 「含まれるか」の欄に貼り付けて判定します。
注意
- 許可リストに書く IP は、ISP の動的 IP だと変わることがあります。固定 IP の契約か VPN 経由の固定アドレスを使ってください。
- CDN(Cloudflare など)を通している場合、サーバーに届く接続元 IP は CDN のものになり、
Require ipが意図通り動きません。CDN 側の機能で制限してください。
よくある質問
/24 や /26 の数字は何を表していますか?
先頭から何ビットがネットワーク部かを表します(プレフィックス長)。IPv4 は 32 ビットなので、/24 なら残り 8 ビットがホスト部で 256 個のアドレス、/26 なら残り 6 ビットで 64 個です。サブネットマスクで書くと /24 は 255.255.255.0、/26 は 255.255.255.192 になります。
ホスト数がアドレス数より 2 少ないのはなぜですか?
先頭のアドレス(ネットワークアドレス)と末尾のアドレス(ブロードキャスト)は機器に割り当てられないためです。/31 は 2 アドレスをそのまま 2 台の対向接続に使う決まり(RFC 3021)があり、/32 は 1 台を指します。本ツールもこの扱いにしています。
192.168.1.10/24 のようにホストのアドレスを入れたらどうなりますか?
ホスト部を 0 にしたネットワークアドレス(192.168.1.0/24)として計算し、入力した 192.168.1.10 がその範囲内であることを表示します。ファイアウォールや .htaccess に書くときは、ネットワークアドレスの形(192.168.1.0/24)に直したものを使ってください。
IPv6 の :: は何ですか?
連続する 0 のグループを 1 回だけ省略する記法です。2001:db8::1 は 2001:0db8:0000:0000:0000:0000:0000:0001 と同じです。本ツールの「展開」で省略なしの形に、「圧縮」で RFC 5952 の推奨表記(小文字、最長の 0 の並びを :: にする)に直せます。