实现批量的IP地址,或地址段的排序并按照CIDR格式最小化聚合。
需要聚合的IP段放在ip.list文件中,聚合后的IP在文件new_ip.list
# 按照序号循环IP列表
for i in range(len(IpIntList)):
# 前一个IP
prev_ip = IpIntList[i]
# 设置该IP为net
net = prev_ip
# 前进到下一个需要整和的net位置
if i+1 > net_index:
# 当前net往下连续的IP个数,包含net
num = 1
flag = num
# 定义单个IP的掩码位数, 32
netmasklen = 32 - pos_first1bit(num)
# 定义当前net最大允许的掩码位数
maxnetmasklen = 32 - pos_first1bit(net)
# 从net在列表中的下一个位置开始遍历,获取next_ip,
for next_ip in IpIntList[i + 1:]:
# 判断是否连续--连续
1