随机生成的IPv6地址(Generate random IPv6 address)

2019-10-19 04:30发布

在Python,我应该怎么做,如果我想将产生的IP V6地址的形式随机字符串?

例如: “FF80 :: 220:16ff:fec9:1”, “FE80 :: 232:50FF:FEC0:5”, “FE20 :: 150:560F:fec4:3” 等。

可能有人给我一些帮助吗?

Answer 1:

一号线的解决方案:

str(ipaddress.IPv6Address(random.randint(0, 2**128-1)))

或手工地址(但零的连续区段不与双冒号代替):

':'.join('{:x}'.format(random.randint(0, 2**16 - 1)) for i in range(8))


Answer 2:

要生成一个随机的十六进制字符,你可以这样做:

random.choice('abcdef' + string.digits)

然后,它应该足够简单,生成您在IPv6地址的格式字符串。

您还可以找到有关随机串生成这里更多的信息: 随机串生成用大写字母和数字在Python



Answer 3:

调节功能可以根据需要,这是老的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)))


文章来源: Generate random IPv6 address
标签: python random