什麼是 IP 位址 CIDR 範圍計算機?
這個工具會接收以點分十進位表示的 IPv4 位址,搭配 CIDR 網路前綴長度,計算出完整的子網路資訊:網路位址、廣播位址、可指派的主機位址範圍、子網路遮罩、萬用字元遮罩,以及位址總數。它遵循無類別域間路由(CIDR,RFC 4632)標準,在世界各地的運算結果都完全相同——IP 定址是一套通用標準,不會因地區而異。
使用方式
分別輸入 IPv4 位址的四個位元組(每個 0–255),例如 128、1、10、164,再輸入斜線後的前綴長度(0–32),例如 24,組成 128.1.10.164/24。計算機會醒目顯示主要結果——也就是可指派的主機範圍——並在下方列出所有衍生欄位。
公式說明
系統會先將位址打包成一個 32 位元無號整數:
$$\text{IP} = \left(\text{Oct}_1 \ll 24\right) \mid \left(\text{Oct}_2 \ll 16\right) \mid \left(\text{Oct}_3 \ll 8\right) \mid \text{Oct}_4$$子網路遮罩會把最高的 p 個位元設為 1,其中 p 即為前綴長度。網路位址為 ip AND 遮罩;廣播位址為網路位址 OR 萬用字元遮罩(也就是遮罩的位元反轉)。
$$\text{Network} = \text{IP} \mathbin{\&} M, \qquad \text{Broadcast} = \text{Network} \mid \lnot M$$其中 \(M = \left(2^{\text{Prefix}}-1\right) \ll \left(32 - \text{Prefix}\right)\)。第一個可用主機為網路位址 + 1,最後一個可用主機為廣播位址 − 1。位址總數等於 \(2^{32-p}\),可用主機數則為總數減 2,最低為 0。
$$\text{Total} = 2^{\,32 - \text{Prefix}}, \quad \text{Usable} = \text{Total} - 2$$
實例演算
以 128.1.10.164/24 為例:遮罩為 255.255.255.0,萬用字元遮罩為 0.0.0.255。網路位址是 128.1.10.0,廣播位址是 128.1.10.255。可指派範圍為 128.1.10.1 至 128.1.10.254。共有 \(256\) 個位址,其中 \(254\) 個為可用主機。
常見問題
為什麼可用主機數會比位址總數少 2?在傳統的 IPv4 子網路切割中,網路位址與廣播位址都不能指派給主機,因此擁有 256 個位址的 /24 子網路,實際可用主機只有 254 個。
那 /31 和 /32 呢?/31 包含 2 個位址,/32 只有 1 個;依照傳統的可用主機公式,這兩者都會回報 0。不過 RFC 3021 允許在點對點連線上使用 /31 的這 2 個位址。
什麼是萬用字元遮罩?它是子網路遮罩的位元反轉(遮罩為 1 的位置設為 0,反之亦然)。常用於路由器的存取控制清單(ACL),以比對某一段位址範圍。