IPv4 子網路計算機
輸入 CIDR 表示法的 IPv4 位址,計算網路位址、子網路遮罩與可用主機數。
子網路計算的原理
CIDR 表示法中的「/24」是前綴長度:位址開頭有多少位元屬於網路部分。IPv4 位址共有 32 位元,因此其餘(32 − 前綴長度)位元為主機部分。CIDR 表示法規定於 RFC 4632。
- **子網路遮罩:**前(前綴長度)個位元為 1,其餘為 0(/24 為 255.255.255.0)。
- **網路位址:**位址與遮罩做 AND 運算(主機部分設為 0)。
- **廣播位址:**主機部分全部設為 1。
- **位址總數:**2 的(32 − 前綴長度)次方。
- **可用主機數:**位址總數 − 2(不含網路位址與廣播位址)。
/31 與 /32 是例外
- /31:只有兩個位址。若用「總數 − 2」會得到 0 台主機,但在點對點連線(例如兩台路由器之間的連線)上,兩個位址都會作為主機位址使用。RFC 3021 指出,在使用 31 位元遮罩的點對點連線上,這兩個位址必須被視為主機位址(RFC 3021,第 2.1 節)。本計算機對 /31 顯示 2 台可用主機,且不另外顯示網路位址或廣播位址。在點對點連線以外,可能無法這樣使用。
- /32:只有一個位址,用來識別單一主機(例如只指向一台主機的路由)。沒有另外的網路位址或廣播位址,可用主機數顯示為 1。
範例
| 輸入 | 網路 | 遮罩 | 合計 | 可用主機數 |
|---|---|---|---|---|
| 192.168.1.10/24 | 192.168.1.0 | 255.255.255.0 | 256 | 254(.1 到 .254) |
| 10.0.0.0/30 | 10.0.0.0 | 255.255.255.252 | 4 | 2(.1 與 .2) |
| 10.0.0.0/31 | 兩個位址(.0 與 .1) | 255.255.255.254 | 2 | 2(點對點連線) |
| 10.0.0.5/32 | 10.0.0.5 | 255.255.255.255 | 1 | 1(單一位址) |
| 172.16.0.0/16 | 172.16.0.0 | 255.255.0.0 | 65,536 | 65,534 |
前綴長度與子網路遮罩
| 前綴長度 | 子網路遮罩 | 位址總數 |
|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 |
| /16 | 255.255.0.0 | 65,536 |
| /24 | 255.255.255.0 | 256 |
| /25 | 255.255.255.128 | 128 |
| /26 | 255.255.255.192 | 64 |
| /27 | 255.255.255.224 | 32 |
| /28 | 255.255.255.240 | 16 |
| /29 | 255.255.255.248 | 8 |
| /30 | 255.255.255.252 | 4 |
注意事項
- 僅支援 IPv4(不支援 IPv6)。開頭為 0 的數字(例如 010)可能被當成八進位,意義不明確,因此會被拒絕(單獨一個 0 沒問題)。
- 如果您輸入的位址不是網路位址(例如 192.168.1.10/24),會將主機部分設為 0 來求出網路位址。
- 在實際網路中,可用的主機數可能比顯示的少,例如其中一個位址用作閘道(路由器),或有些位址被保留。
- /0 涵蓋所有 IPv4 位址,其數值僅為理論值。
- 若要以二進位或十六進位檢查位址或數字,請使用進位制轉換器。
常見問題
為什麼可用主機數是「總數 − 2」?
主機部分全為 0 的位址是網路位址,用來指稱網路本身。主機部分全為 1 的位址是廣播位址,用來向網路上的所有裝置發送資料。這兩個位址都不會分配給主機。
/31 可以用在一般網路上嗎?
在點對點連線(兩台裝置之間的連線)上可以。若網路上有三台以上的裝置,則需要網路位址與廣播位址,因此請使用 /30 或更短的前綴(更大的網路)。
如果我只知道子網路遮罩怎麼辦?
請先將它轉換成前綴長度(255.255.255.0 是 /24,255.255.255.252 是 /30)。上方的表格可以幫助您對照。