我在使用ipaddress.collapse_addresses()
方法时遇到困难。
# n is a list of 192.168.0.0/24 networks (1,2,3,4....etc)
def sumnet():
n = nlist()
for net in n:
snet = ipaddress.collapse_addresses(net)
return snet
我只是拿回原来的名单:
Collapsed Networks
[IPv4Network('192.168.0.0/24'), IPv4Network('192.168.1.0/24'),
IPv4Network('192.168.2.0/24'), IPv4Network('192.168.3.0/24'),
IPv4Network('192.168.4.0/24'), IPv4Network('192.168.5.0/24'),
IPv4Network('192.168.6.0/24'), IPv4Network('192.168.7.0/24'),
IPv4Network('192.168.8.0/24')]
1条答案
按热度按时间vsdwdz231#
假设您输入的是来自ipaddress的IPv4网络列表,例如...
您想要的输出是
这一切都可以用...
collapse_addresses
方法实际上获取了一个完整的地址列表,你不需要一个一个地输入ip_addresses,它会为崩溃的网络返回一个生成器,但是你可以把它转换成一个列表来处理它。如果这不是你想要的结果,请告诉我。
下面的代码片段启动了一个for循环,它获取第一个ip地址,并将其折叠成一个生成器,然后返回带有该ip地址的生成器,而不查看任何其他ip地址,因此很难理解你的代码应该做什么。然而,这似乎与你的问题所声称的输出不一致。