【发布时间】:2014-07-09 17:30:22
【问题描述】:
python 3.3.4 网络地址 7.12 Mac OSX 10.8.5
我有一个不会与 netaddr.cidr_merge() 合并的 IPNetworks 列表,即使其中一些是相邻的。我是不是做错了什么?
import netaddr
from netaddr import IPNetwork
iplist =[
IPNetwork('10.105.205.8/29'),
IPNetwork('10.105.205.16/28'),
IPNetwork('10.105.205.32/27'),
IPNetwork('10.105.205.64/26'),
IPNetwork('10.105.205.128/26'),
IPNetwork('10.105.205.192/28'),
IPNetwork('10.105.205.208/29'),
IPNetwork('10.105.206.48/28'),
IPNetwork('10.105.206.80/28')
]
>>> summary = netaddr.cidr_merge(iplist)
>>> summary == iplist
True
netaddr.cidr_merge(ip_addrs)
一个函数,它接受可迭代的 IP 地址和子网序列,将它们合并到尽可能小的 CIDR 列表中。它会尽可能合并相邻的子网以及其他子网中包含的子网,并删除任何重复的子网。
参数:ip_addrs – IP 地址和子网的可迭代序列。 返回:IPNetwork 对象的汇总列表。
【问题讨论】:
-
在玩过这个之后。我发现如果我将 IPNetwork('10.105.204.0/29') 添加到 iplist 那么它会进一步总结。
标签: python python-3.x