Zufällige IPv6-Adressen in einem gegebenen Netzwerk mit Python generieren
English
Deutsch
Dieser Code generiert zufällige IPv6-Adressen in einem gegebenen Netzwerk mit dem ipaddress-Modul von Python:
random_ipv6.py
import ipaddress
import random
def random_ipv6_addr(network):
"""
Eine zufällige IPv6-Adresse im gegebenen Netzwerk generieren
Beispiel: random_ipv6_addr("fd66:6cbb:8c10::/48")
Gibt ein IPv6Address-Objekt zurück.
"""
net = ipaddress.IPv6Network(network)
# Welche der network.num_addresses wollen wir auswählen?
addr_no = random.randint(0, net.num_addresses)
# Zufällige Adresse erstellen durch Konvertierung in eine 128-Bit-Ganzzahl, Addieren von addr_no und Zurückkonvertieren
network_int = int.from_bytes(net.network_address.packed, byteorder="big")
addr_int = network_int + addr_no
addr = ipaddress.IPv6Address(addr_int.to_bytes(16, byteorder="big"))
return addr
# Verwendungsbeispiel
print(random_ipv6_addr("fdce:4879:a1e9::/48"))
# Gibt z.B. fdce:4879:a1e9:e351:1a01:be9:4d9a:157d ausEs funktioniert, indem zuerst die IPv6-Netzwerkadresse in Binärform konvertiert und dann eine zufällige Host-Nummer addiert wird. Danach wird sie zurück in ein IPv6Address-Objekt konvertiert.
Check out similar posts by category:
Networking, Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow