从问题中不确定您希望地址的哪些部分是随机的。我假设最后 2 个字节。
使用 python netaddr库:
import random
from netaddr.ip import IPNetwork, IPAddress
random.seed()
ip_a = IPAddress('2001::cafe:0') + random.getrandbits(16)
ip_n = IPNetwork(ip_a)
ip_n.prefixlen = 64
print ip_a
print ip_n
Run Code Online (Sandbox Code Playgroud)
示例输出:
2001::cafe:c935
2001::cafe:c935/64
Run Code Online (Sandbox Code Playgroud)
与简单字符串格式相比的优势在于,可以轻松自定义起始地址、随机位 len。netaddr 类还有许多有用的属性,例如网络的广播地址。
import random
M = 16**4
"2001:cafe:" + ":".join(("%x" % random.randint(0, M) for i in range(6)))
Run Code Online (Sandbox Code Playgroud)