IP 子网计算器 — 计算 CIDR 范围与主机数
为 IPv4 和 IPv6 计算 CIDR 网络范围、主机数量、子网掩码与广播地址,全部在浏览器中运行。
IP Subnet Calculator
Calculate network, broadcast, range, and hosts from CIDR notation. Works entirely in your browser.
IP 子网划分是网络工程师学过一遍之后基本就会忘掉细节的东西 —— 因为运算过程是机械的,但涉及的 bit 又不是你日常打交道的那些。/24 子网是私有网络中最常见的块 —— 192.168.1.0/24 覆盖 254 个可用主机地址,出现在每台家用路由器、每个办公 WiFi、每个 Docker bridge 网络里。/16 覆盖 65,534 台主机,是企业级分配的典型规模。/30 是点对点链路 —— 刚好两个可用地址,用于路由器之间的连接和 VPN 隧道。知道哪个前缀长度对应哪个数量,以及给定块的网络地址和广播地址是什么,是这项技能的核心。
子网运算中「不那么显然」的一点是 IPv4 和 IPv6 的差别。IPv4 在每个子网中保留两个地址(网络地址和广播地址),所以 /30 有 4 个地址但只有 2 个可用。IPv6 没有广播 —— 对应概念是多播 —— 仅保留子网路由器任播地址。IPv6 的可用数是 2^(128-前缀) 减 1,对于任何合理的前缀(/64 或更短)来说这个数字大到在人类尺度上没有意义。运算方法相同;常量不同。工具用同一套解析器处理两者,并标注哪些字段仅适用于 IPv4。
最后的交接:如果是防火墙或 ACL 规则,要复制的是反掩码 —— Cisco IOS、Juniper Junos 和大多数网络设备在其 access-list 语法中接受反掩码。如果是 DHCP 池,可用主机范围减去最低和最高的地址(网关和保留地址)就是要分配的池。如果是 Terraform 或 Ansible 的网络配置,正确的字段是网络地址和前缀长度 —— 这些工具消费的就是 CIDR 块。
使用方法
输入 IP 与前缀长度
键入带 CIDR 表示法的 IPv4 或 IPv6 地址(192.168.1.0/24、2001:db8::/32),或只输入 IP 让工具默认为 /32。输入时实时校验,对格式错误的地址行内标记。
读取网络明细
面板显示网络地址、广播地址(仅 IPv4)、可用主机范围、主机总数、点分十进制和十六进制的子网掩码,以及 Cisco ACL 配置中使用的反掩码。
复制数值
可复制任意单个字段(网络、掩码、广播),或把整张表复制为 JSON。便于粘贴到防火墙规则、Ansible 清单、Terraform 配置或文档里。
常见问题
前缀长度是什么意思?
前缀长度(即 `/` 后面的数字)是子网掩码中前导 1 的个数。/24 表示前 24 位标识网络,剩下 8 位给主机(IPv4 中有 254 个可用地址)。/32 表示单台主机;/0 表示整个 IPv4 地址空间。
为什么可用主机数比 2^(32-前缀) 少 2?
每个 IPv4 子网中有两个地址被保留:网络地址(所有主机位为 0)标识子网本身;广播地址(所有主机位为 1)用于向子网内的所有主机发送数据包。/30 有 2^(32-30) = 4 个地址,但只有 2 个可用作主机 —— 刚好够一个点对点链路。
支持 IPv6 吗?
支持 —— 带 CIDR 表示法的 IPv6 地址(2001:db8::/32)会被解析并计算其网络范围。IPv6 没有广播地址;对应概念是多播,它按组配置而非按子网配置。IPv6 的地址总数极其庞大(2^(128-前缀)),会以科学计数法显示。
子网掩码和反掩码有什么区别?
子网掩码是 IP 与网络掩码的按位与 —— 网络部分为 1、主机部分为 0。反掩码是按位取反 —— 网络部分为 0、主机部分为 1。反掩码用于 Cisco ACL 配置和部分路由协议。
能在大块里划分子网吗?
可以 —— 切换「划分为 N 个子网」即可把输入的块分成大小相等的子网。工具会展示每个子网的网络、广播与主机范围。可用于规划把一个 /22 切成四个 /24 分配给不同办公室或 VLAN。
限制说明
- 不支持 VLSM 规划可变长子网掩码(VLSM)规划 —— 即从一个更大的块中挑出恰好容纳已知主机数的最小子网 —— 没有作为单一操作暴露。「划分为 N」模式给出的是大小相等的子网,而不是针对已知主机需求的最优尺寸子网。
- IPv6 主机数为近似值超过 2^64 的 IPv6 地址数会以科学计数法显示,因为完整的整数会有几千位数字。转换在数学上是精确的,但对 /0 和 /16 前缀来说不便于阅读。
- 不给出 DHCP 范围建议工具会算出可用主机范围,但不会建议排除的 DHCP 地址池(通常最低和最高地址保留给网关和备份用途)。请手动对输出再处理一次以保留这些地址。
平台说明
- macOS
- macOS 自带 `ipcalc` 和 `sipcalc` 作为仅支持 IPv4 的命令行替代。本浏览器工具是处理 IPv6 计算以及命令行工具未提供的广播/反掩码明细的正确选择。
- Windows
- Windows 没有自带的子网计算器。最接近的 PowerShell 命令是 `[System.Net.IPAddress]::Parse('192.168.1.5').GetAddressBytes()`。本浏览器工具是获取包括反掩码和划分子网在内的完整明细的正确选择。
- Linux
- `ipcalc` 包(Debian、Ubuntu)和 `sipcalc` 处理 IPv4;处理 IPv6 用 `ipcalc-ng` 或 `subnetcalc`。本浏览器工具是处理命令行工具未覆盖的 IPv6 反掩码和划分子网的正确选择。
- CLI
- 驱动本工具的同一个库也有 Python 包(netaddr、ipaddress)和 Node.js(ip-cidr、netmask)版本。适合把子网计算嵌入到脚本、基础设施即代码或网络自动化流水线中。