如何在Python中创建IPv4的CIDR地址/范围并将子网掩码转为CIDR表示
在Python中创建IPv4 CIDR地址/范围及子网掩码转CIDR方法
一、利用子网掩码和网关生成目标CIDR
已知子网掩码255.255.255.0、网关192.0.2.250,要得到192.0.2.0/24这类CIDR格式,可使用Python标准库ipaddress完成:
from ipaddress import IPv4Network # 组合网关与子网掩码,strict=False允许非网络地址作为输入,自动计算正确网络段 network = IPv4Network(f"192.0.2.250/255.255.255.0", strict=False) # 输出完整CIDR表示 print(network.with_prefixlen) # 结果:192.0.2.0/24 # 输出前缀长度(即CIDR中的数字部分) print(network.prefixlen) # 结果:24
二、单独将子网掩码转换为CIDR前缀长度
如果仅需把子网掩码转成对应的前缀长度,可这样实现:
from ipaddress import IPv4Network subnet_mask = "255.255.255.0" # 通过0/掩码的形式生成网络对象,提取前缀长度 prefix_length = IPv4Network(f"0/{subnet_mask}").prefixlen print(prefix_length) # 结果:24
三、直接创建指定的IPv4 CIDR范围
若已知网络地址和前缀长度,可直接实例化IPv4Network来创建CIDR范围:
from ipaddress import IPv4Network # 直接传入CIDR格式字符串 cidr_network = IPv4Network("192.0.2.0/24") # 可查看该网段的起始、结束地址 print(f"网段起始地址:{cidr_network.network_address}") print(f"网段结束地址:{cidr_network.broadcast_address}")
内容的提问来源于stack exchange,提问作者Sudha
相关产品推荐
相关产品推荐

