アドレス単体、address/prefix、address/netmask、スペース区切りの netmask、16 進マスクに対応。IPv4 も IPv6 も可。
CIDRでも、アドレス単体でも、アドレス+マスクでも — IPv4とIPv6をまるごとブラウザ内で計算します。
ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。
アドレス単体、address/prefix、address/netmask、スペース区切りの netmask、16 進マスクに対応。IPv4 も IPv6 も可。
ネットワークらしいものを貼れば、あとはこの計算機が片づけます。192.168.1.0/24、アドレス単体、10.0.0.1/255.255.255.0、10.0.0.1 255.255.255.0、/0xffffff00 のような16進マスク、そしてIPv6はどの書き方でも受け付けます。返ってくるのはネットワークアドレス、ブロードキャストアドレス、利用可能な最初と最後のホスト、総アドレス数と利用可能ホスト数、全表記のサブネットマスク、そしてそのアドレスの正体 — プライベート、ループバック、リンクローカル、マルチキャスト、ドキュメント用、CGNAT — です。判定は昔のクラスA/B/Cの話ではなく、RFCが定める32個の特別用途レンジと突き合わせています。
ここではIPv6は後付けのおまけではなく主役の一つです。世のsubnet calculatorの多くは、いまだにIPv4で止まっています。プレフィックスはRFC 5952の形(小文字16進、ゼロが最も長く続く箇所に :: を1つだけ)に正規化し、::ffff:192.0.2.1 は混在表記で表示、個数はすべて多倍長整数で厳密に数えます — /48は本当に 1,208,925,819,614,629,174,706,176 個で、1.2e24 ではありません。おかげで設計中に実際に出てくる問いがそのまま答えになります。/56や/48から/64が何本取れるのか、そのプレフィックスはULA(fc00::/7)なのかグローバルに到達可能なのか、リンクローカルの fe80::/10 はどこに位置するのか。
サブネット分割は親プレフィックスを同じ大きさの子に切り分けます — /24を4つの/26に、/48を256個の/56に — そして各子のネットワーク、範囲、ブロードキャストを一覧にします。行を全部作らずページ単位で組み立てるので、/8を/30で切るという無茶な要求にも即答します。総数(4,194,304)は算術で求め、いま見ているページだけを描くからです。マスクの変換は双方向です。プレフィックス長を渡せばドット表記・16進・ワイルドカードが返り、255.255.254.0 やワイルドカードの 0.0.1.255 を渡せばプレフィックス長が返ります。255.0.255.0 のような連続していないマスクは、CIDRとして不正なので理由付きで拒否します。
計算はすべてブラウザ内です。このページは静的ファイルで、裏にAPIはありません。これはよくあるプライバシー文句以上の意味があります。社内のアドレス設計はそれ自体が偵察材料で、10.42.7.0/23 — 決済ゲートウェイ を誰かのサーバーに送信するフォームへ貼るのは、自社ネットワークの地図を他人に渡す行為です。不正な入力でページが壊れることもありません。壊れる代わりに何が悪いのかを名指しします — 192.168.01.1 の先頭ゼロ、1つのIPv6アドレスに :: が2つ、ネットワークだと言った値にホストビットが立っている — なので、推測ではなく入力を直せます。
存在しません。RFC 4291はIPv6からブロードキャストを完全に取り除き、全ノードマルチキャストの ff02::1 で置き換えました。リンク上の最後のアドレスは、ただの使えるインターフェイスアドレスです。この計算機はIPv6プレフィックスではブロードキャスト欄を空のままにします。もし他のツールがIPv6の「ブロードキャストアドレス」を表示しているなら、それは範囲の最後のアドレスに、存在しない名前を付けて見せているだけです。
/31はRFC 3021がそう決めており、/32はホストルート1本だからです。ポイントツーポイントリンクの/31にはネットワークアドレスもブロードキャストアドレスも要りません — 両端が2つのアドレスをそのまま使います — だからルーター間リンクの標準的な番号付けになり、/30に比べてリンクごとに2アドレス節約できます。その下の/32はアドレス1つ、ループバックやVIP、ホスト1台だけに一致するファイアウォールルールです。教科書の 2^ホストビット − 2 の式ならどちらも0になるので、意味のない数字を出す代わりに特別扱いしています。
減る1つはSubnet-Router anycastアドレス、つまりインターフェイスIDが全ゼロのもの(2001:db8::/64 なら 2001:db8::)で、RFC 4291がリンク上のルーター用に予約しています。反対側で引くべきブロードキャストアドレスは存在しないので、引き算は1回だけです。実務ではこの数字はほぼ学術的です。/64の利用可能アドレスは 18,446,744,073,709,551,615 個あり、そもそもSLAACが/64を要求するので、リンクごとに/64を配るべきです。
固まりません。分割器は総数(4,194,304サブネット)を算術で求め、いま見ている行だけを組み立てます。既定で256件ずつなので、ページ送りでも任意のオフセットへのジャンプでも構いません。全件をメモリに作らないので、無茶な要求も常識的な要求とまったく同じ速さで返ります。
そのレンジはCGNAT用(RFC 6598)です。加入者ごとにグローバルなIPv4アドレスを用意できなくなったISPが配るアドレス、つまりキャリアグレードNATの空間です。ルーターのWAN側アドレスが 100.64.0.0/10 にあるなら、自宅のNATの外側にさらにISPのNATがあるので、外から入ってくるポート転送は成立しません。あなたに届く公開アドレスが存在しないからです。この計算機はそういうアドレスを「パブリック」ではなくCGNATと表示するので、たいていその行で状況が腑に落ちます。打ち手はISPから本物のグローバルIPv4をもらう、IPv6を使う(CGNATの環境なら大抵IPv6も来ています)、あるいは外向きのトンネルを張る、のどれかです。
fe80::1%eth0 が拒否されるのはなぜですか?%eth0 の部分が原因です。これはゾーンIDで、アドレス自体の性質ではなく、特定のマシンのインターフェイスを指します。fe80::1%eth0 と fe80::1%wlan0 はあなたのノートPCでは別の宛先で、私の機械では両方とも何も意味しません。だから計算機はゾーン部分について真であることを何も言えません。そこを外して fe80::1(プレフィックスなら fe80::/10)を貼れば、あとは普通に動きます。