CIDR / 子网计算器
计算任意 IPv4 或 IPv6 CIDR 网段的网络地址、广播地址、掩码与主机范围
本地运行
loading…
关于此工具
输入一个 CIDR 网段,比如 10.20.0.0/16 或 2001:db8::/48,就能一次看到它的全部信息:网络地址、广播地址(IPv6 为末地址)、子网掩码与反掩码、首个与末个可用主机、地址总数,以及它落在哪类特殊用途地址段——RFC 1918 私有地址、运营商级 NAT、链路本地、文档示例、组播等。单个 IP 地址同样可以,子网掩码写法(192.168.1.0 255.255.255.0)和 Cisco 反掩码写法(0.0.0.255)也都能识别。
粘贴一个地址范围——10.0.0.1 - 10.0.0.200——会得到恰好覆盖它的最少 CIDR 块列表,这正是防火墙规则、安全组和白名单真正接受的格式。拆分功能把一个网段等分成更小的子网(把 /16 拆成 /24,把 /32 拆成 /48),方便规划 VPC 和 VLAN;成员检查则告诉你某个地址是否在网段内。
所有运算都用 BigInt 完成,所以 IPv6 的地址数是精确值而不是浮点近似:一个 /64 有 18446744073709551616 个地址,而不是「1.8e19」。工具不做任何在线查询——它知道 IANA 的特殊用途地址段,但不知道某个地址归谁所有——你的内网规划也永远不会离开浏览器。
常见问题
- 为什么 /24 只有 254 个可用主机,而不是 256 个?
- 在 IPv4 中,子网的第一个地址代表网络本身,最后一个是广播地址,两者都不能分配给主机。例外是 /31——RFC 3021 允许点对点链路完整使用这两个地址——以及只有单个地址的 /32。IPv6 没有广播,所以 IPv6 网段中的每个地址都算可用。
- 「主机位不为零」是什么意思?
- 你输入的地址不是网段的起始地址,比如 10.1.2.3/8。多数工具会默默把它取整为 10.0.0.0/8;也有一些会直接拒绝,例如严格模式下 Python 的 ipaddress 模块和部分云控制台。计算器会显示真正的网络地址,方便你粘贴规范写法。
- 为什么带前导零的地址会被拒绝?
- 因为不同系统对它的理解不一致。经典的 inet_aton 把 010 当作八进制(即 8),而大多数其他解析器把它当作十进制 10——这种分歧曾导致真实的访问控制绕过。与其猜测,计算器会提示你去掉前导零。
- 地址范围是怎样转换成 CIDR 块的?
- 从起点开始贪心地取:每一步选择以当前地址对齐、且不超出范围终点的最大网段,然后继续。这样得到的块数最少。像 192.168.0.0 – 192.168.255.255 这样对齐的范围会合并成一个 /16;而 .1 – .10 这种不对齐的范围需要五个块。
- 反掩码(通配符掩码)有什么用?
- 它是子网掩码按位取反的结果——/24 对应 0.0.0.255——Cisco IOS 的访问控制列表和 OSPF 的 network 语句用它来表示地址范围。两种写法都可以粘贴进来,计算器会识别反掩码并换算成前缀长度。