服务器流量收集

最近刚刚完成了服务器流量收集这一块儿的代码,就顺便整理一下思路什么的吧。
首先就是流量包的抓取和解析。因为我们使用的是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文件。
服务器流量收集

上一篇:批量更改域用户密码


下一篇:阿里云服务器系统盘收费价格(高效云盘/SSD云盘/ESSD云盘)