如何用Python将IPv4 CIDR格式转换为IP+子网掩码格式
解决CIDR转“IP 子网掩码”格式的问题
核心实现代码
假设你已经定义好CIDR前缀到子网掩码的映射字典,直接用以下代码处理文件即可:
# 预定义的CIDR前缀-子网掩码映射字典(根据你的需求补充完整) cidr_to_mask = { 8: "255.0.0.0", 16: "255.255.0.0", 24: "255.255.255.0", 25: "255.255.255.128", 27: "255.255.255.224", # 添加其他需要的前缀对应关系 } # 配置输入输出文件路径 input_path = "cidr_list.txt" output_path = "ip_mask_result.txt" # 批量处理文件内容 with open(input_path, "r", encoding="utf-8") as in_file, open(output_path, "w", encoding="utf-8") as out_file: for line in in_file: # 清理行首尾的空白和换行符 cidr_entry = line.strip() if not cidr_entry: continue # 跳过空行 # 拆分IP地址和CIDR前缀 try: ip_addr, prefix_str = cidr_entry.split("/") prefix = int(prefix_str) except ValueError: print(f"无效的CIDR格式,跳过条目: {cidr_entry}") continue # 获取对应子网掩码并写入结果 subnet_mask = cidr_to_mask.get(prefix) if subnet_mask: out_file.write(f"{ip_addr} {subnet_mask}\n") else: print(f"未找到前缀 {prefix} 对应的掩码,跳过条目: {cidr_entry}")
关键逻辑说明
- 文件操作:使用
with语句同时打开输入/输出文件,无需手动关闭文件,保证资源安全 - 行处理:用
strip()清理每行的冗余空白,跳过空行避免无效处理 - 格式拆分:通过
split("/")拆分CIDR的IP和前缀部分,加入异常捕获处理格式错误的条目 - 掩码匹配:用字典
get()方法安全获取掩码,避免键不存在时抛出异常,同时打印提示信息便于排查问题
内容的提问来源于stack exchange,提问作者karoks
相关产品推荐
相关产品推荐

