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,浏览器标签页在渲染完成之前就会卡死。这里的输出设有上限,同时单独给出真实总数,让你既能看到区间的实际规模,又不必让浏览器去渲染它。如果确实需要遍历超大地址块,应该在服务端以流式方式处理,而不是塞进一个文本框。