首页/网络/IP 与子网速查/Python ipaddress 库速算
本包目录(177 条)
掩码与 CIDR 速算50 条
私网与特殊地址45 条子网划分方法与例题40 条IPv6 与下一代网络42 条

Python ipaddress 库速算

ipaddress 是标准库中最可靠的网段计算工具:网段、广播、主机列表、子网拆分与聚合判断都能一行完成,适合写验算脚本。

IP 与子网速查网络更新于 2026-10-12

常用计算

常用计算
import ipaddress as ip
net = ip.ip_network('192.168.1.130/27', strict=False)
net.network_address     # 192.168.1.128
net.broadcast_address   # 192.168.1.159
net.hostmask            # 0.0.0.31
net.num_addresses       # 32
len(list(net.hosts()))  # 30

拆分与聚合

拆分与聚合
list(ip.ip_network('192.168.1.0/24').subnets(new_prefix=26))
# [192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26]
list(ip.collapse_addresses([ip.ip_network('192.168.0.0/24'),
                            ip.ip_network('192.168.1.0/24')]))
# [192.168.0.0/23]
ip_network() 默认 strict=True:主机地址+掩码会抛 ValueError;工程上先 strict=False 归位,再 assert 结果是否等于预期网段。

易错点

  • strict=True 下传主机地址直接报错,被误判为库的 bug
  • 把 ip_network 与 ip_interface 混用:后者保留主机地址语义

数据来源与参考

  • Python 官方文档 ipaddress 模块
  • RFC 4632(CIDR)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌