python3获取基于CIDR表示法的随机IP我是

时间:2016-09-28 10:19:42

标签: python-3.x

在python中,很少有模块支持IP上的大量操作我希望获得基于CIDR传递的随机IP(v4或 v6),或者选择是否有办法做到这一点,我有试过" netaddr"和 ipaddress 模块?

>>> ip = IPNetwork('192.0.2.0/24')
>>> ip
IPNetwork('192.0.2.0/24')
>>> ip.ip
IPAddress('192.0.2.0')
>>> ip.network, ip.broadcast

我可以通过下面的方法得到一个列表,但问题是再次返回的列表可能很大并且可以吃掉完整的内存

/ 64个大量地址的前缀

>>list(IPv6Network("2001:db8:0:1::/125").hosts())
    (IPAddress('192.0.2.0'), IPAddress('192.0.2.255'))

1 个答案:

答案 0 :(得分:0)

import ipaddress
ips = ipaddress.ip_network('192.168.0.0/24')
for ip in ips: print(ip)

documentation

中的更多信息