[英]Generate random IPv6 address
在Python中,如果要生成IP v6地址形式的随机字符串该怎么办?
例如:“ ff80 :: 220:16ff:fec9:1”,“ fe80 :: 232:50ff:fec0:5”,“ fe20 :: 150:560f:fec4:3”等等。
有人可以帮我些忙吗?
一线解决方案:
str(ipaddress.IPv6Address(random.randint(0, 2**128-1)))
或手工地址(但连续的零部分不会被双冒号代替):
':'.join('{:x}'.format(random.randint(0, 2**16 - 1)) for i in range(8))
要生成一个随机的十六进制字符,可以使用以下命令:
random.choice('abcdef' + string.digits)
然后,它应该足够简单,以IPv6地址的形式生成您的字符串。
您还可以在此处找到有关随机字符串生成的更多信息: Python中带有大写字母和数字的随机字符串生成
根据需要调整功能,这是较旧的python 2.x; 但主要是本机库。
import random, struct, socket
from random import getrandbits
print socket.inet_ntop(socket.AF_INET6, struct.pack('>QQ', getrandbits(64), getrandbits(64)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.