2017-09-05 9 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')) 
関連する問題