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

要装软件,要记命令,要切窗口。

不如网页版直接复制粘贴。

工具能做什么

CIDR 子网计算器

输入: - 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 位二进制。

在线使用

👉 CIDR 子网计算器

如果 VLSM 多部门要自动算,试试更高级的 VLSM 子网规划器


📱 扫码关注「网英的日常」,每天学点网络知识!