在上一节,我们完成了编写一个简易的Sniffer的第一步——数据捕获。很多时候,我们需要将捕获的数据先保存到磁盘上,之后再使用工具或者自己编写代码来进行详细分析。本节我们在上一节的基础上来讲解保存捕获数据的方式,当然使用tcpdump或者WireShark都可以很方便的存储数据包。4.2.1 使用pcapy保存和读取数据前文我们使用 pcapy的open_live方法,可以获取pcapy的一个实例对象,通过该对象的dump_open方法可以获取一个dump对象,通过dump对象可以保存数据包到本地磁盘。示例如下:#!/usr/bin/python import pcapy dev = "eth0" filter = "tcp and port 80" def save_packet(hdr, data): dumper.dump(hdr, data) pcap = pcapy.open_live(dev, 1500, 0, 100) dumper = pcap.dump_open('sniffer.pcap') pcap.setfilter(filter) pcap.loop(0, save_packet)上面的代码中,我们首先通过dump_open方法获取dumper对象,随后在循环捕获数据的时候调用save_packet方法,该方法中调用dump方法将数据保存到
...
继续阅读
(16)