龙空技术网

利用PYTHON的SCAPY包发测试流量

网络驱动一切 46

前言:

如今咱们对“python测试网络”大约比较关心,大家都想要学习一些“python测试网络”的相关资讯。那么小编同时在网络上网罗了一些对于“python测试网络””的相关资讯,希望我们能喜欢,你们一起来了解一下吧!

在网络测试时,通常需要做一些流量测试。比较好的工具有OSTINATO(图形界面)和TCPREPLAY(命令行),OSTINATO的报文定义部分比较繁琐,我们以PYTHON3结合SCAPY库编写个简单的报文发生脚本,代码如下:

#! /usr/bin/env python3

from scapy.all import *

a=Ether()

b=IP()

c=ICMP() #也可以是UDP或TCP报文,需要自定义源、目标端口

d=b'a'*1000 #负荷

a.src='52:00:00:00:6c:34'

a.dst='38:00:00:00:dd:00'

b.src='192.168.122.73'

b.dst='172.30.1.58'

e = a / b / c / d #e 为各段组合后的报文,

sendpfast(e,mbps=90,loop=3000,iface='enp1s0',verbose=False)

#不要用scapy的send和sendp函数发定义好的报文,这俩函数发送能力较弱

#参数内含义是以90兆/秒的速率发3000个报文,enp1s0为发送接口

#也可以将报文e转为二进制格式利用socket.SOCK_RAW发送。

SCAPY的sendpfast函数调用的是tcpreplay软件,先apt install tcpreplay即可。

e也可以为一个列表,可以自定义各种报文的组合发送。

标签: #python测试网络 #python 网络测速