Python:列出IP范围

时间:2011-01-16 15:21:27

标签: python

我遇到netaddr软件包的问题 - 版本0.7.5。此代码按预期工作,并打印出以下范围内的IP地址列表:

from netaddr import IPNetwork

ipnetwork = '192.168.0.0/24'
print list(IPNetwork(ipnetwork).iter_hosts())

但是,如果我将网络更改为“192.168.0.0/8”,我的脚本就会挂起:

from netaddr import IPNetwork

ipnetwork = '192.168.0.0/8'
print list(IPNetwork(ipnetwork).iter_hosts())

我错过了什么或这是一个错误吗?

修改

看起来我因为没有意识到这个范围有多大而错过了什么!

1 个答案:

答案 0 :(得分:2)

你确定不只是花了很多时间吗?您正在从迭代器中创建一个列表。当我在我的机器上运行它时,我获得100%的CPU使用率和内存使用量增加。如果直接使用迭代器,我也可以打印出整个范围。