CIDR 子网计算器:数通工程师的每日必备
数通工程师三大工具:终端、计算器、子网计算器。第三个我做成网页版了。
背景
还在用 ipcalc 命令?还要记公式?
$ ipcalc 192.168.1.0/26
Address: 192.168.1.0
Netmask: 255.255.255.192 = 26
Wildcard: 0.0.0.63
Network: 192.168.1.0/26
Broadcast: 192.168.1.63
HostMin: 192.168.1.1
HostMax: 192.168.1.62
Hosts/Net: 62
要装软件,要记命令,要切窗口。
不如网页版直接复制粘贴。
工具能做什么

输入:
- IP 地址(如 192.168.1.100)
- 子网掩码(255.255.255.0 或 /24)
输出: - ✅ 网络地址、广播地址 - ✅ 可用主机范围(首/末) - ✅ 反掩码(Wildcard Mask) - ✅ IP 类型(私有/公网/组播/回环) - ✅ 二进制表示(点分 8 位一组) - ✅ 主机数反算掩码:"我要 100 个主机,最小前缀是多少?" - ✅ VLSM 划分子网:"把 /24 划成 /26,分成几个?"
核心实现
Python 标准库 ipaddress 模块 —— Python 3.3 就有了,超好用:
import ipaddress
net = ipaddress.IPv4Network('192.168.1.0/24', strict=False)
net.network_address # 192.168.1.0
net.broadcast_address # 192.168.1.255
net.num_addresses # 256
hosts = list(net.hosts()) # [192.168.1.1, ..., 192.168.1.254]
hosts[0] # 192.168.1.1
hosts[-1] # 192.168.1.254
# IP 类型判断
net.network_address.is_private # True
主机数反算前缀:
def hosts_to_prefix(need):
n = 0
while (2 ** n) - 2 < need:
n += 1
return 32 - n
hosts_to_prefix(100) # 25 → /25 提供 126 主机
hosts_to_prefix(500) # 23 → /23 提供 510 主机
VLSM 划分子网:
subnets = list(net.subnets(new_prefix=26))
# 4 个 /26 子网:.0/26, .64/26, .128/26, .192/26
4 个使用案例
案例 1:分配 IP 给服务器
老板:"给 ERP 服务器分一段 IP,估摸 50 台机器能连。"
→ 输入 192.168.1.0/26 → 看结果:可用 62 IP,足够。
案例 2:判断 IP 是不是私网
朋友:"10.5.5.5 是公网还是私网?"
→ 输进去看 IP 类型 字段:私有地址。
案例 3:VLSM 划分
运维:"总部给我 192.168.1.0/24,要分成 4 个部门:销售 100 人、财务 50 人、技术 20 人、行政 10 人。"
→ 选 VLSM,输入需求,自动出方案:
销售: 192.168.1.0/25 (126 用, 100 需) ✓
财务: 192.168.1.128/26 (62 用, 50 需) ✓
技术: 192.168.1.192/27 (30 用, 20 需) ✓
行政: 192.168.1.224/28 (14 用, 10 需) ✓
案例 4:学习二进制
"192.168.1.1 的二进制到底是啥?子网掩码 /24 为什么是 255.255.255.0?"
→ 输入即看二进制:IP 和 Mask 都是点分 8 位二进制。
在线使用
如果 VLSM 多部门要自动算,试试更高级的 VLSM 子网规划器。
📱 扫码关注「网英的日常」,每天学点网络知识!