IPv4 子网计算器

为任意 IPv4 CIDR 或「IP + 掩码」计算网络地址、广播地址、首个与末个可用主机、子网掩码及主机总数。

不用心算也能规划子网。 输入带 CIDR 前缀的 IPv4 地址(如 192.168.1.10/24)或点分掩码,即可得到网络地址、广播地址、首个与末个可用主机、子网掩码及可容纳的主机数。本地计算。

网络地址
广播地址
首个可用主机
末个可用主机
子网掩码
可用主机数

读懂一个子网

前缀长度到底固定了什么

一个子网由基础地址加前缀长度构成。前缀说明 32 位中有多少位被固定为网络标识,剩下的位可以自由枚举主机。/24 固定前 24 位,剩 8 位主机位,因此有 256 个地址。前缀每增加 1 位,地址块就减半:/25 是 128 个,/26 是 64 个,依此类推。

子网掩码是同一件事的地址写法,固定位取 1——255.255.255.0 就是 24 个 1 后接 8 个 0。反掩码(wildcard)是它的按位取反,标记主机部分;Cisco 设备的 ACL 用反掩码而非子网掩码书写,跨厂商操作时很容易搞混。

网络地址、广播地址与中间的主机

把所有主机位置 0 得到网络地址,即地址块中最小的地址;全置 1 得到广播地址,即最大的地址。两者都不能配置给接口,这就是"减二"的由来:/24 有 256 个地址,但可用主机只有 254 个。

实际部署中通常还会再少一个,因为路由器或默认网关要占用一个,习惯上取第一个或最后一个可用地址。这只是惯例而非规定,但在规划子网容量时值得预留。

/31 与 /32 这两个例外

减二规则在小前缀处失效。/32 只有一个地址、没有任何主机位,用于环回口、主机路由和证书 SAN。/31 只有两个地址,RFC 3021 允许两个都用于点对点链路——因为一条恰好只有两个端点的链路根本不需要广播地址。在 RFC 3021 之前,每条链路都要浪费一个 /30,四个地址里白白扔掉两个。

CIDR 记法还是点分掩码

两者描述的是同一件事,本计算器都接受。192.168.1.0/24192.168.1.0 255.255.255.0 结果完全一致。需要注意合法掩码必须是连续的 1 后接连续的 0,像 255.0.255.0 这样的并不是有效掩码;如果某个计算器不声不响地接受了它,给出的结果一定是错的。

开源说明:使用原生 JavaScript 实现,不依赖第三方库。

常见问题

为什么可用地址要减去两个?
第一个地址代表网络本身,最后一个是广播地址,两者都不能分配给主机。因此 /24 提供 256 − 2 = 254 个可用地址。
可以用点分掩码代替前缀长度吗?
可以。192.168.1.0/24 与 192.168.1.0 255.255.255.0 的结果完全相同。完全不带掩码的地址会按 /32 处理。
/31 会怎么计算?
RFC 3021 允许在点对点链路上使用 /31,此时两个地址都可用且不存在广播地址。计算器会报告 2 个可用主机而不是 0 个。
为什么我的掩码被拒绝了?
合法掩码必须是一段连续的 1 后面全是 0。像 255.255.0.255 这样中间断开的写法不对应任何前缀长度,因此无效。
网络地址和第一个主机地址有什么区别?
网络地址是整个地址块的起点,第一个主机地址是紧随其后的下一个地址。对 192.168.1.0/24 而言分别是 192.168.1.0 和 192.168.1.1。
它适合用来做 VLSM 规划吗?
适合。先按各自需要的前缀长度算出每个地址块,再检查得到的区间之间没有重叠,然后再实际分配。