Python 3.x python3根据CIDR符号i am获得一个随机IP

Python 3.x python3根据CIDR符号i am获得一个随机IP,python-3.x,Python 3.x,在python中,很少有模块支持IP上的大量操作。我想根据通过的CIDR获得一个随机IP(v4或v6)或者选择。有没有办法做到这一点,我已经尝试了“NetAddress”和ipaddress模块 >>> ip = IPNetwork('192.0.2.0/24') >>> ip IPNetwork('192.0.2.0/24') >>> ip.ip IPAddress('192.0.2.0') >>> ip.network,

在python中,很少有模块支持IP上的大量操作。我想根据通过的CIDR获得一个随机IP(v4或v6)或者选择。有没有办法做到这一点,我已经尝试了“NetAddress”和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'))

更多信息请参见

如果我们为/2提供服务,IPv6也将花费大量时间
import ipaddress
ips = ipaddress.ip_network('192.168.0.0/24')
for ip in ips: print(ip)