You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:37:30