为了加入防火墙的功能,这两天学习了下scapy库的使用,下面是一些我的总结笔记
1.包的导入代码:from scapy.all import *
2.功能两块:
一.发包:代码格式:1)构造数据包:pkt= IP()/TCP()/data (口号里可以传入各层协议的字段参数等)
2)发送:send()
参数列表:
1)pkt:要发送的数据包
2)inter:间隔时间
3)count:发送数量
4)iface:网卡
二.收包:主要函数:sniff()
sniff函数参数列表:
1)count: 要捕获数据包的总数. 0 表示无限制;
2)store: 是否要保存捕获的数据包;
3)prn: 回调函数,会作用于每个数据包
ex: prn = lambda x: x.summary()
4)lfilter: 过滤函数,不满足条件的数据包会被丢弃;
ex: lfilter = lambda x: x.haslayer(Padding)
5)offline: 从pcap文件中读取数据包;
6)timeout: 捕获指定时间内的数据包;7)
8)L2socket: 通过给定的 L2socket 进行数据捕获;
9)opened_socket: 通过给定的 socket 进行数据捕获;
10)stop_filter: 过滤函数,满足条件后将结束数据捕获;
ex: stop_filter = lambda x: x.haslayer(TCP)
11)iface: 指定端口或端口数组
三.查看包信息
1)summary()函数:将包的全部信息打印出来
2)haslayer(a)函数:检查参数里的层是否存在
2)单包显示信息:pkt[2][IP].dst(第2个包的IP层的目的IP)
3)过滤规则:BFP(Wireshark那一套)