IPv4 地址段展開器
將 IPv4 地址段或 CIDR 展開為完整地址列表,並即時計數。適用於防火牆規則與資產清單。
把範圍變成清單。 給出起止範圍(192.168.1.1-192.168.1.20)或 CIDR(10.0.0.0/28),即可得到其中每個地址及計數。超大範圍會為避免瀏覽器卡頓而截斷。本地計算。
超過 10,000 個地址時僅顯示前 10,000 個並附計數。
將 IPv4 地址段或 CIDR 展開為完整地址列表,並即時計數。適用於防火牆規則與資產清單。
把範圍變成清單。 給出起止範圍(192.168.1.1-192.168.1.20)或 CIDR(10.0.0.0/28),即可得到其中每個地址及計數。超大範圍會為避免瀏覽器卡頓而截斷。本地計算。
超過 10,000 個地址時僅顯示前 10,000 個並附計數。
CIDR 塊和起止地址對都能描述一段連續地址,但表達能力並不相同。CIDR 只能表示大小為 2 的冪、且基地址按該大小對齊的塊——10.0.0.0/30 合法,而 10.0.0.1/30 與 10.0.0.0/30 表示的是同一個塊,因為低位會被掩碼抹掉。像 192.168.0.254-192.168.1.2 這樣的任意區間根本無法寫成單個 CIDR,需要三個才能覆蓋。
本工具兩種形式都接受,並把它們展開成顯式列表。這在列表的消費方不認識 CIDR 時特別有用:老式裝置的白名單、表格列、shell 迴圈,以及快速確認某個區間是否真的覆蓋了你以為的範圍。
自己手寫展開器最常見的 bug,是把地址當成四個獨立的數字、只對最後一段做自增。這在區間不跨段時能用,一旦跨段,192.168.0.255 的下一個就會變成 192.168.0.256 而不是 192.168.1.0。轉成 32 位整數、自增、再轉回來,進位自然就正確了,這是唯一值得采用的做法。
另一個陷阱是符號位。在按位運算結果為有符號 32 位整數的語言裡,255.255.255.255 如果不強制轉回無符號就會變成 -1。所有高於 127.x.x.x 的地址都會中招,而如果你只用 10 或 192 開頭的 RFC 1918 地址測試,這個 bug 會一直藏著。
一個 /8 包含 1670 萬個地址,展開成文本大約 250 MB,瀏覽器標籤頁在渲染完成之前就會卡死。這裡的輸出設有上限,同時單獨給出真實總數,讓你既能看到區間的實際規模,又不必讓瀏覽器去渲染它。如果確實需要遍歷超大地址塊,應該在服務端以流式方式處理,而不是塞進一個文本框。