IP 段與 CIDR 互轉
起止 IP 與 CIDR 互轉,多段自動合併、支持扣除
每行一條,CIDR、起止區間、單個地址都認;改輸出格式就能在 CIDR 與區間之間來回換。
每行可以寫 CIDR、起止區間或單個地址,IPv4 與 IPv6 都支持,兩者不會互相合併。
範例
輸入
10.0.0.0/24 10.0.1.0/24 10.0.3.7-10.0.3.9
示例結果
10.0.0.0/23 10.0.3.7/32 10.0.3.8/31
前兩段首尾相接,合成了 10.0.0.0/23;第三段沒有按 2 的冪對齊,用兩塊拼出來。
技術細節與邊界
地址一律轉成整數參與計算,IPv4 與 IPv6 都用 JavaScript 的 BigInt,所以 IPv6 的 128 位不會丟精度。合併是先按起點排序再掃一遍,相鄰判定用「下一段起點 ≤ 當前終點 + 1」。區間轉 CIDR 時從起點開始,每次取在對齊前提下不超過終點的最大塊,得到的是塊數最少的拆分。扣除按區間求差,結果再按原格式輸出。
關於此工具
把一批 IP 段整理成可以直接用的列表:每行寫 CIDR、起止區間或單個地址,工具排序後合併重疊與首尾相接的段,再按 CIDR、起止區間或明細三種格式輸出。還可以從一組段裡扣除另一組,用來生成白名單或排除表。IPv4 與 IPv6 都支持,兩者各自合併、不會混在一起。全部在瀏覽器里計算,地址列表不會離開本機。
適用場景
- 把一堆零散的 IP 段合併成最少的 CIDR,寫進防火牆或 ACL。
- 從一個大段裡扣掉幾段,生成排除表或白名單。
- 核對一個 CIDR 的起止地址、掩碼和可用主機數。
操作步驟
- 在列表裡逐行填入 IP 段,CIDR、起止區間和單個地址可以混著寫。
- 選操作:只合併,或者再從結果里扣除另一組段。
- 選輸出格式:CIDR、起止區間,或帶掩碼與主機數的明細。
- 結果可以直接複製,或用下方按鈕存成文本文件。
注意事項
合併只在同一個地址族內進行,IPv4 與 IPv6 各算各的。相鄰的段會被並成一條(10.0.0.0/24 與 10.0.1.0/24 合成 10.0.0.0/23),如果你需要保留原來的邊界,請改用起止區間輸出。明細里的掩碼、網絡地址和廣播地址只對 IPv4 且正好是一個 CIDR 塊時給出;/31 與 /32 沒有獨立的網絡號與廣播地址,不會列出。本工具只做地址計算,不查歸屬地也不探測連通性。
常見問題
- IPv4 CIDR網段有多少個地址怎麼計算?
- IPv4網段的地址總數等於2的主機位數次方,主機位數為32減前綴長度。例如/24含256個地址;這是整個地址區間的數量,可用主機數還取決於網絡用途與前綴規則,不能一律直接減2。
- IPv6 網段計算會丟失128位精度嗎?
- 本工具用BigInt整數處理IPv6地址,避免把128位地址轉成浮點數而丟失精度。例如/64含2的64次方個地址;區間合併與扣除也使用整數邊界,但不判斷這些地址實際是否已分配或可訪問。
- IP 區間轉CIDR為甚麼會拆成多個網段?
- 任意IP區間只有符合對齊邊界和塊大小時才能用單個CIDR表示。比如4個地址組成1塊還必須滿足起點對齊;工具逐次選取不越過終點的最大塊,生成覆蓋原區間的最少塊數,不額外包含區間外地址。
相關工具