最近刚刚完成了服务器流量收集这一块儿的代码,就顺便整理一下思路什么的吧。
首先就是流量包的抓取和解析。因为我们使用的是python语言,而python中的关于数据包抓取的模块是scapy,而不是scrapy,这个是爬虫里面需要用到的模块。当然,不仅仅是scapy,还有文件夹操作的os模块和实行多线程的threading模块。
首先就是对网卡/网络适配器,过滤规则(我们这里采用的是BPF规则去对协议进行过滤),抓包数量以及保存路径的定义,将其设为全局变量:
接着就是对数据包的操作,先创建或者说是查找数据包保存路径,利用os模块和其中的mkdir函数去进行操作。
然后便是利用scapy模块中的sniff(嗅探/流量监控)函数去进行数据包的抓取,sniff函数的一些参数如下:
因为我们要用到的是多线程的抓取,所以需要用到threading模块,而threading模块儿的具体详解我也不详细阐述了在这里面,附加一个链接,在CSDN中也算是高阅读量的解释吧:Python多线程编程(一):threading 模块 Thread 类的用法详解
并且要记得定义一个全局变量表示我们已经抓取的数据包的数量。
而且,因为我们要在命令行中也能使用,便要调用命令行解析器argparse模块,它是python自带的一个命令行解析包。而其效果如下:
命令行解析器的使用方法我是参考知乎上的一篇文章:argparse模块用法实例详解,大家不会的也可以去看看,因为我觉得我自己讲的话可能效果甚微。
最后,便是抓取数据包之后的保存,利用os模块去创建或者查找文件夹,然后利用wrpcap函数将每个数据包保存为pcap文件。
相关文章
- 10-15[CodeIgniter4]故障排除和本地开发服务器
- 10-15在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- 10-15如何将“流星运行android-device”发送到流星服务器?
- 10-15sqlserver 库服务器导数据
- 10-15TZ_10_spring-sucrity 服务器和页面的权限控制
- 10-15CKEditor实现截图CTRL+V图片上传服务器
- 10-15实验室服务器搭建3090+pytorch环境
- 10-15我如何使用discord.py列出不和谐服务器中的所有成员?
- 10-15改变服务器sshd 的22的端口
- 10-15流量变现不好使了?YouTuber最近有点烦,流量飙升收入跳崖