使用python合并具有包含关系IP网段,内容如下:
import ipaddress
import sys
# 定义一个函数从文件中读取路由
def read_routes_from_file(file_path):
with open(file_path, 'r') as file:
routes = [line.strip() for line in file.readlines()]
return routes
# 检查是否提供了文件路径参数
if len(sys.argv) < 2:
print("请提供路由文件的路径作为参数")
sys.exit(1)
# 获取传入的文件路径参数
file_path = sys.argv[1]
# 读取文件中的路由
routes = read_routes_from_file(file_path)
# 将路由转换为IP网络对象
ip_networks = [ipaddress.ip_network(route) for route in routes]
# 合并路由
merged_networks = ipaddress.collapse_addresses(ip_networks)
# 输出合并后的路由
for network in merged_networks:
print(network)
ip 列表文件内容如下:
执行结果如下: