簡體   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