IP 段與 CIDR 互轉

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 的起止地址、掩碼和可用主機數。

操作步驟

  1. 在列表裡逐行填入 IP 段,CIDR、起止區間和單個地址可以混著寫。
  2. 選操作:只合併,或者再從結果里扣除另一組段。
  3. 選輸出格式:CIDR、起止區間,或帶掩碼與主機數的明細。
  4. 結果可以直接複製,或用下方按鈕存成文本文件。

注意事項

合併只在同一個地址族內進行,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塊還必須滿足起點對齊;工具逐次選取不越過終點的最大塊,生成覆蓋原區間的最少塊數,不額外包含區間外地址。

相關工具

IP 段與 CIDR 互轉 · 起止 IP 與 CIDR 互轉,多段自動合併、支持扣除
IP 段與 CIDR 互轉 — 工具示意圖 · dayeku.com