import threading
import time
from colorama import init, Fore
import ctypes
import string
import random
init(convert=True)
ctypes.windll.kernel32.SetConsoleTitleW("Number Generator")
f = open('capodepera.txt', 'a')
print()
print(Fore.RED + 'Enter amount of ips to generate: ')
amount = int(input())
fix = 1
while fix <= amount:
code = ('').join(random.choices(string.digits.upper())) + "." + ('').join(random.choices(string.digits.upper()))
f.write(code.upper() + '\n')
print(Fore.GREEN + code.upper())
fix += 1
ctypes.windll.kernel32.SetConsoleTitleW("generated ips: " + str(fix) + " from " + str(amount))
您好,所以我尝试制作一个IP生成器,但我不知道如何进行随机。选择(string.digits.upper())会生成多个数字。。我什么都试过了,但都补不上
随机选择并不是最好的选择。我建议改用
random.randrange()
:您可能错过了documentation for ^{} ,它告诉您有一个名为
k
的参数:因此
random.choices()
返回一个大小为k
的列表,其中k
默认为1
。如果要在返回的列表中包含多个值,请将k
设置为其他值,例如k=3
以获取值:请注意,我没有为
.upper()
而烦恼。数字没有大写变体,它们不是字母因此,要将两组具有
.
的数字连接在一起:或者使用f字符串,或者只导入
choices
和digits
:但是,如果您试图生成IP地址,则使用
random.choices()
和string.digits
不是正确的选择。例如,IP地址通常不在开始时使用0
位此外,您还被进一步限制为0到256之间的数字,并且某些数字是保留的(例如专用地址、多播地址、链路本地和环回网络以及其他保留地址),您可能不想生成那些的
我将生成一个随机的32位数字(因此在} ,然后检查
range(2 ** 32)
),将该数字馈送到^{is_global
标志以确保它是一个有效的全局IP地址(排除其他情况):这保证每次生成一个随机但有效的全局IP地址:
你可以这样做
相关问题 更多 >
编程相关推荐