2017-09-05 28 views
-2

如何让下面的脚本从列出的每个子网中生成1个IPv6地址?从Python中的多个对象随机生成

#!/usr/bin/env python3 
""" 
Generate a random IPv6 address for each of the specified subnets 
""" 

from random import seed, getrandbits 
from ipaddress import IPv6Network, IPv6Address 

subnet = u'2001:db8:100::/64' 
subnet = u'2001:e85:100::/64' 
subnet = u'2001:45a:100::/64' 

seed() 
network = IPv6Network(subnet) 
address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen)) 

print(address) 

很可能,我希望能够列出许多不同的IPv6子网。

+0

可能重复[生成随机IPv6地址](https://stackoverflow.com/questions/21016918/generate-random-ipv6-address) –

回答

1
def generate(subnet): 
    network = IPv6Network(subnet) 
    address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen)) 
    return address 

print(generate(u'2001:db8:100::/64')) 
print(generate(u'2001:e85:100::/64')) 
print(generate(u'2001:45a:100::/64')) 
0

谢谢亚历克斯。

#!/usr/bin/env python3 
""" 
Generate a random IPv6 address for each of the specified subnets 
""" 

from random import seed, getrandbits 
from ipaddress import IPv6Network, IPv6Address 

subnet = u'2001:db8:100::/64' 
subnet = u'2001:e85:100::/64' 
subnet = u'2001:45a:100::/64' 

def generate(subnet): 
    network = IPv6Network(subnet) 
    address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen)) 
    return address 

print(generate(u'2001:db8:100::/64')) 
print(generate(u'2001:e85:100::/64')) 
print(generate(u'2001:45a:100::/64'))