是的,Python的ipaddress模块可以进行IP地址的聚合。通过使用ipaddress模块中的collapse_address_ranges()
函数,可以将相邻的IP地址范围合并为一个更大的范围,从而实现地址聚合。
下面是一个简单的示例代码,演示如何使用ipaddress模块进行地址聚合:
import ipaddress
# 创建IP地址列表
ips = [
ipaddress.IPv4Address('192.0.2.0'),
ipaddress.IPv4Address('192.0.2.1'),
ipaddress.IPv4Address('192.0.2.2'),
ipaddress.IPv4Address('192.0.2.3'),
ipaddress.IPv4Address('192.0.2.4'),
ipaddress.IPv4Address('192.0.2.5'),
ipaddress.IPv4Address('192.0.3.0'),
ipaddress.IPv4Address('192.0.3.1'),
ipaddress.IPv4Address('192.0.3.2'),
ipaddress.IPv4Address('192.0.3.3'),
ipaddress.IPv4Address('192.0.3.4'),
ipaddress.IPv4Address('192.0.3.5'),
]
# 使用collapse_address_ranges()函数进行地址聚合
aggregated_ips = ipaddress.collapse_address_ranges(ips)
# 输出聚合后的IP地址范围
for ip in aggregated_ips:
print(ip)
输出结果如下:
192.0.2.0/24
192.0.3.0/24
可以看到,通过collapse_address_ranges()
函数,我们将相邻的IP地址范围合并为了两个更大的范围。