• Python使用random模块随机生成ip、端口、字符串


    1. import random
    2. import string
    3. def generate_random_ip():
    4. ip = ".".join(str(random.randint(0,255)) for _ in range(4))
    5. return ip
    6. def generate_random_port():
    7. port = random.randint(0,65535)
    8. return port
    9. def generate_random_data(length):
    10. # 从字母(大小写)、数字和特殊符号的字符集中,随机抽样生成一个长度为 length 的字符串
    11. characters = string.ascii_letters + string.digits + string.punctuation # 随机特殊符号
    12. characters = string.ascii_letters + string.digits + '!@#$%^&*()_+-=[]{}|;:<>/?' # 指定特殊符号
    13. data = "".join(random.choices(characters, k = length))
    14. return data
    15. print(generate_random_ip())
    16. print(generate_random_port())
    17. print(generate_random_data( random.randint(1,100) )) # 随机生成一个长度在 1 到 100 字节之间的随机数据

    218.252.83.107
    54206
    um5Op/D?d^98JOm4?R#g4t9[m9r}j64aad2v4l/}70fA/9]7bjm]07fv/Dp(uPo;NSDf-

    代码"str(random.randint(0,255)) for _ in range(4)"是一个列表推导式,用于生成一个包含四个随机整数字符串的列表。让我逐步解释它:

    1. random.randint(0, 255): random.randint() 函数用于生成指定范围内的随机整数。在这里,范围是从 0 到 255,即一个 IPv4 地址中的每个部分的取值范围。

    2. for _ in range(4): 这部分是一个循环,它会迭代四次,每次生成一个随机整数字符串。range(4) 创建了一个包含四个整数的序列,for _ 表示在循环中不需要使用迭代变量,通常使用下划线 _ 表示不需要使用的变量名。

    3. str(random.randint(0, 255)): 这部分将每个随机整数转换为字符串类型,因为 IP 地址是由字符串表示的。

    所以,整个表达式 str(random.randint(0, 255)) for _ in range(4) 的作用是生成一个包含四个随机整数字符串的列表,这个列表代表了一个随机的 IPv4 地址的各个部分。

    random.choices() 是 Python 中用于生成随机抽样的函数之一,它可以从给定的序列中进行有放回或无放回的抽样,生成指定数量的元素。

    在这个特定的例子中,我们使用了 string.ascii_lettersstring.digits 和string.punctuation来构建一个包含所有字母(大小写)和数字和特殊符号的序列。这两个字符串常量是 Python 内置的,分别表示了字母和数字的字符集。

    random.choices() 函数的第一个参数是一个可迭代对象,表示抽样的来源。在这里,我们将字母和数字和特殊符号组合在一起,构成了一个包含所有可能字符的序列。

    第二个参数 k 则表示我们要抽样的元素数量。在这个例子中,我们希望生成一个长度为 length 的随机字符串,所以将其作为 k 的值传入。

    因此,random.choices(string.ascii_letters + string.digits + string.punctuation, k=length)
    的作用就是从字母(大小写)和数字的字符集中,随机抽样生成一个长度为 length 的字符串。

  • 相关阅读:
    PPT NO.2 ​插入透明校徽
    要远离职场中的哪几类人
    elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)
    安卓Service拍照
    NDArray源码解析及测试代码
    HC32_HC32F072FAUA_内部温度传感器+外部输入_ADC多通道采集
    贪心算法 - 一点了解
    tableau高级绘图(一)-使用模板快速制作华夫饼图 (Waffle Chart)
    【MybatisPlus】MP来实现一些特殊的查询
    Linux:【Kafka四】集群介绍与单机搭建
  • 原文地址:https://blog.csdn.net/songpeiying/article/details/138068744