IP 子网计算器

算出任意 IPv4 / IPv6 网段的网络地址、广播地址、可用主机范围与掩码,并判断某个 IP 是否属于它。全部计算都在你的浏览器里完成,输入不会发往任何地方。

同时提供 Windows 桌面版。

关于这个工具

每个 IP 网络都是一段地址范围,而把这段范围写下来的简写就是 CIDR:一个地址、一个斜杠、一个数字。192.168.1.0/24 的意思是「前 24 位是 192.168.1 的那 256 个地址」。全部道理就在这里 —— 也正是它容易算错的原因:边界只在 2 的整数次幂上对齐,离了纸笔就很难一眼看准。

这一页用这套算术做四件事。把一个网段拆成你真正要用的那几个数 —— 网络地址、广播地址、第一个和最后一个可用主机、子网掩码以及它的通配符形式。判出这个网段属于哪一类地址,一眼看得出它是内网空间还是能在公网上路由。判断某个 IP 是否落在某个子网里。再把一段首尾范围还原成恰好覆盖它的最少 CIDR 列表。

IPv4 与 IPv6 都支持,而且算法完全相同 —— 都是 32 位或 128 位整数上的位运算。一切都跑在你的浏览器里:你输入的地址不会发往任何地方,也不会被记录。

常见问题

斜杠后面的数字是什么意思?
它是「前多少位属于网络」—— 剩下的位用来标识这个网络里的主机。/24 把 24 位留给网络、8 位留给主机,也就是 2^8 = 256 个地址;/16 留 16 位主机位(65536 个地址);/25 留 7 位(128 个地址)。数字越大,网段越小。
为什么可用主机数比地址总数少 2?
在普通的 IPv4 子网里,第一个地址被留下来指代「这个网络本身」,最后一个地址是广播地址(一次送达所有主机),两个都不能分配给机器。所以一个 /24 有 256 个地址,却只有 254 台主机。这也是为什么普通点对点链路最小只用 /30(4 个地址)—— 正好剩下 2 个。
/31 和 /32 有什么不一样?
不一样,而且很多计算器在这里会悄悄给出错误答案。/32 只有一个地址、/31 有两个,按「减 2」的常规算法就都得 0 个可用主机 —— 显然荒谬。RFC 3021 对此做了修正:/31 的两个地址都可作为主机地址,现代点对点链路正是这么用的。本工具对 /32 报 1 个可用地址,对 /31 报 2 个。
通配符掩码是干什么用的?
它就是子网掩码倒过来:掩码里是 1 的位变成 0,是 0 的位变成 1。路由器和访问控制列表通常要的是通配符形式 —— 192.168.1.0 配 0.0.0.255 表示「所有以 192.168.1 开头的地址」。计算机要掩码,路由器要通配符。这一页两个都给出,省得你手算取反。
IPv6 有什么不同?
主要差在规模,以及一个很容易踩的细节。IPv6 地址是 128 位,所以哪怕是一个局域网的标准尺寸 /64,也装着大约 1.8 × 10^19 个地址。另外 IPv6 根本没有广播地址,它的那部分职责由组播承担。所以对 IPv6,本工具显示的是「最后地址」,而不是凭空造一个并不存在的广播地址。
我输入的内容会被发到哪里去吗?
不会。整个计算过程没有任何服务器参与 —— 全是跑在你自己设备上的整数运算。这也意味着断网时这一页照样能用,而你粘贴进来的内网网段不会离开你的机器。