IPv4 子网计算器(CIDR 网段分析 · 按主机数反查前缀)
粘贴 IP/前缀(如 192.168.1.0/24),立刻给出网络地址、可用主机范围、广播地址、子网掩码、反掩码与地址用途归类;也能按需要的台数反查该用多大前缀。全部在浏览器本地计算。
A · 从 CIDR 看网段
| 项目 | 值 |
|---|---|
| 网络地址 | — |
| 主机范围(首 – 尾) | — |
| 广播地址 | — |
| 子网掩码 | — |
| 反掩码(wildcard) | — |
| CIDR | — |
| 可用主机数 | — |
| 地址总数 | — |
| 块大小(网段间隔) | — |
B · 需要 N 个主机,该用多大前缀
| 项目 | 值 |
|---|---|
| 子网掩码 | — |
| 反掩码(wildcard) | — |
| 地址总数(块大小) | — |
| 比需求多出的地址 | — |
可用主机数为什么不永远是 2 减 2
一个网段里有哪几个地址
「这个 IP/24 到底管多少台机器、网络地址和广播地址是哪两个、可用范围从几号到几号?」——心算容易,但一旦碰到 /20、/22 这种跨了整段的掩码,或者输入的是一个主机地址(192.168.1.77/24)而不是网络地址,就特别容易算错边界。
上半部分把一串 CIDR 拆成网络地址、主机范围、广播、子网掩码、反掩码、可用/总地址数,并顺手告诉你这个地址落在哪一类(私有、回环、CGNAT、组播……)。下半部分反过来:先知道要多少台机器,再求「刚好装得下的最小网段该用多大前缀」,并给出比需求多浪费了多少地址。
输入怎么解析
- 主输入是一格 CIDR:推荐写
IP/前缀,例如192.168.1.0/24;也接受10.10.10.5/32这类「主机地址 + 前缀」,工具会算出它所在的网段,并在下面用一句话点明「10.10.10.5 不是 /32 的网络地址……」。 - 掩码那格是选填:只在 CIDR 那格没有斜杠时才生效——只填一个 IP,再在掩码格填
255.255.248.0,工具会把点分掩码换算成前缀长度(要求掩码是连续的高位 1)。若 CIDR 里已经写了/前缀,则以/前缀为准,掩码那格被忽略。这样两种写法不会互相打架。 - 严格到「宁可报错也不猜」:必须是点分四段、每段是 0–255 的整数,不接受空格、正负号、字母;前导零一律拒绝(
192.168.01.1会被拒),因为有些解析器把01当八进制的 1、有些当十进制的 1,含义不确定;前缀长度同理,/33、/24.5、/00、空的/都会被拒绝并指出是哪个 token 出了问题。 - 只吃掉首尾空格:粘贴时多带的空格会被去掉,但中间的空格(
192.168.1.0 /24)仍视为错误——这是有意区分的,中间空格通常意味着你其实想粘贴两条东西。
计算口径:可用主机数为什么不是永远 2ⁿ−2
对普通网段(前缀 /30 及更粗),可用主机数 = 2^(32−前缀) − 2,减掉的是网络地址(主机位全 0)和广播地址(主机位全 1)这两个被协议保留、不能分给主机的边界地址。
但两个特例不按这个减法:
- /31:按 RFC 3021,点对点链路(典型是两台路由器互联)不预留网络地址与广播地址,2 个地址都可用作主机。所以 /31 显示的可用主机数 = 2,而不是 2¹−2 = 0。表里仍会列出传统的「网络地址 / 广播地址」两个边界值,只是那只是为了和别的前缀对齐,不代表它们真的被保留。
- /32:单主机路由,网络、广播、主机其实是同一个地址,可用主机数 = 1。
地址总数(块大小)始终是 2^(32−前缀),/0 时等于 2^32 = 4,294,967,296,这个数字在双精度浮点里能精确表示,整条计算全程用整型算术、只在需要无符号语义时做一次 >>> 0,正是为了不把接近 2^32 的掩码算成负数。
什么时候这个结果帮不了你
- 它只是数学,不是路由决策:算得出 /20 有 4094 台可用,不代表你的网络该切成 /20。真实规划要考虑网关、VLAN、DHCP 池、可聚合性,别拿一个前缀数字直接改网络。
- 等长划分假设:一次算的是 CIDR 那种「一个前缀一个大小」。现实里的 VLSM(可变长子网掩码)会在一整段里切出大小不一的子网,超网(supernetting)则把多个连续网段汇总成一条更粗的路由——这些都不是单行 CIDR 能表达的。
- 仅 IPv4:所有口径、边界值、特例都是 IPv4 的,和 IPv6 的 /64、SLAAC 毫无关系,别套用。
- 归类按你输入的那个地址:
0.0.0.0/0会显示 4294967296 个地址,那是默认路由、不是某个能独占的网段;文档段、CGNAT、链路本地等归类只是 IANA 特别用途登记的常识参考,不代表你的网络真的被保留。
常见问题
Q:为什么网络地址和广播地址不能分给主机? 主机位全 0 的地址是「这一整段网络」的代号,主机位全 1 的地址是该段的受限广播,两者在链路层有特殊含义,所以传统前缀要从总数里各减一。/31 之所以是例外,正是因为 RFC 3021 规定点对点链路不需要广播,把这两个也还给了主机。
Q:反掩码(wildcard)到底有什么用?
它是子网掩码的逐位取反(/24 的掩码 255.255.255.0 对应反掩码 0.0.0.255),1 表示「这一位随便匹配」。路由器 ACL 的匹配、以及 OSPF 里 network <地址> <反掩码> area 语句都用反掩码而不是子网掩码;反掩码还能表达子网掩码表达不了的「非连续」匹配,例如 0.0.255.255 匹配任意前两段。
Q:192.168.1.77/24 为什么不直接报错? 因为这几乎是最高频的真实困惑——从别处复制来的地址常常就是某个主机地址而非网络地址。工具不拒绝它,而是算出它所在的网络(192.168.1.0/24),再明确告诉你「你给的 192.168.1.77 不是 /24 的网络地址」。查段用主机地址当入口,是很自然的需求。
Q:反查「需要 254 台」为什么给的是 /24 不是 /23? 因为要的是「刚好装得下、浪费最少」的那一档:/24 有 254 台可用正好等于 254,而 /25 只有 126 台装不下。工具会对结果做一次最小可用校验——「/24 可容纳 254 ≥ 需求,再细一级 /25 只有 126 < 需求」——通过的提示会写在结果里,确保给的是最细(地址块最小)的可用前缀。
输入去哪了
解析、掩码换算、归类全在这台设备的浏览器里用 JavaScript 完成;你输入的 IP、掩码和主机数不会离开这台设备。