Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Generate a random IPv6 address
#!/usr/bin/env python3
"""
Generate a random IPv6 address for a specified subnet
"""
from random import seed, getrandbits
from ipaddress import IPv6Network, IPv6Address
subnet = '2001:db8:100::/64'
seed()
network = IPv6Network(subnet)
address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen))
print(address)
@robetus

This comment has been minimized.

Copy link

robetus commented Sep 5, 2017

I needed to write it like this to get it to work:

subnet = u'2001:db8:100::/64'

Can you create it to make 1 random IPv6 address from multiple different IPv6 subnets?

@arya6000

This comment has been minimized.

Copy link

arya6000 commented Sep 27, 2017

It would be very useful if this is modified to give X amount of IPv6 IPs? for example it would generate 1000 IPv6 IPs starting from the lowest range. or does such script already exist?

@json-m

This comment has been minimized.

Copy link

json-m commented Oct 23, 2018

It would be very useful if this is modified to give X amount of IPv6 IPs? for example it would generate 1000 IPv6 IPs starting from the lowest range. or does such script already exist?

$ for ip in {1..1000}; do python random-ipv6-addr.py ; done ? not exactly what you asked for but you can work from there..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.