MiServe DevTools

我的贴纸

把工具固定在这里,会保存在此浏览器中。

CIDR / 子网计算器

计算 IPv4 或 IPv6 地址块的网络地址、主机范围、掩码和地址类型,把它划分为子网,并检查某个地址是否属于它。

网络地址
广播地址
第一个可用主机
最后一个可用主机
地址数
可用主机数
子网掩码
通配符掩码
前缀长度
传统地址类别(CIDR 之前)
压缩形式(RFC 5952)
完整形式
地址类型
二进制地址:网络位 | 主机位

划分子网

检查地址是否属于此网络

在浏览器中运行。粘贴的内容不会被上传。

关于此工具

CIDR 表示法的含义

CIDR 表示法用一个地址加前缀长度来表示一个地址块,例如 192.168.1.0/24。前缀长度是地址块中所有地址共有的前导位数,其余的位用于给主机编号。因此,IPv4 中的 /24 留下 8 个主机位,包含 256 个地址;前缀每增加一位,地址块就缩小一半。

子网掩码用点分形式表达同样的信息:24 个 1 位后跟 8 个 0 位,就是 255.255.255.0。通配符掩码是它的反码 0.0.0.255,Cisco IOS 的访问控制列表和 OSPF 的 network 语句要求使用这种形式。三种形式都可以输入,工具会在它们之间相互转换。

可用主机,以及 /31 和 /32 的特殊情况

在 IPv4 中,子网的第一个地址表示网络本身,最后一个是广播地址,所以可用主机数比地址数少两个。但有两个例外。/31 只有两个地址,RFC 3021 允许点对点链路把两个地址都用作主机地址,不设广播地址。/32 只有一台主机,用于环回接口和主机路由。

IPv6 没有广播地址,这项工作由组播完成,所以工具会计入 IPv6 地址块中的每一个地址。IPv6 子网的第一个地址是子网路由器任播地址(Subnet-Router anycast,RFC 4291),由路由器响应。常规的 IPv6 子网是 /64,因为无状态地址自动配置需要 64 位的接口标识符。

地址类型

有些地址范围有固定用途。RFC 1918 把 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 保留给私有网络,100.64.0.0/10 是运营商用于运营商级 NAT 的范围。127.0.0.0/8 是环回地址,169.254.0.0/16 是链路本地地址。在 IPv6 中,fc00::/7 是唯一本地地址,fe80::/10 是链路本地地址。192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 和 2001:db8::/32 仅供文档使用,所以示例都用它们。

在 1993 年被 CIDR 取代之前,A、B、C 类地址根据地址的前几位确定网络规模。工具显示地址类别仅供参考:路由早已不再使用它。

此工具的计算方式

地址会被转换为一个整数,IPv4 为 32 位,IPv6 为 128 位,所有结果都由这个整数与掩码的位运算得出。IPv6 地址按 RFC 5952 的规范形式书写:使用小写,去掉前导零,并用 :: 替换最长的一串全零组。在二进制那一行中,竖线标出网络位结束、主机位开始的位置。

常见问题

/24 能容纳多少台主机?

/24 包含 256 个地址。在 IPv4 中,第一个是网络地址,最后一个是广播地址,剩下 254 个可用主机地址。

子网掩码和通配符掩码有什么区别?

子网掩码的网络部分为 1 位,主机部分为 0 位,例如 255.255.255.0。通配符掩码是同一个值按位取反,即 0.0.0.255,其中 1 位表示该位可以变化。Cisco IOS 的访问控制列表和 OSPF 的 network 语句使用通配符掩码,而接口地址通常用子网掩码或前缀长度表示。

为什么 /31 没有广播地址?

/31 只有两个地址。RFC 3021 允许在点对点链路上把两个地址都用作主机地址,这种链路不需要广播地址,因此不必占用地址充当网络地址或广播地址。

如何把一个网络划分为更小的子网?

前缀每增加一位,地址块就一分为二。一个 /24 可以分成 2 个 /25、4 个 /26 或 8 个 /27 子网。由于是按位划分,等大子网的数量总是 2 的幂;如果你要求 5 个,工具会给出 8 个。

输入的地址会被发送到服务器吗?

不会。计算由浏览器标签页中的 JavaScript 完成。此工具不会发出任何网络请求,你输入的内容只留在你的设备上。

网络分类的其他工具