繁体   English   中英

生成随机的IPv6地址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM