python解析pcap数据包,再导出成csv文件

因为网络拓扑发现和操作系统识别都是通过wireshark抓取网络上的通信数据包实现的,所以想对wireshark抓取到的pcap数据包进行解析,并且进行网络特性及其具体值的提取,并将其保存成csv格式。一个下午的时间,终于让我搞懂原理了。

1、利用SCAPY模块解析pcap数据包

首先,保证python中安装了scapy库,若没有,利用:pip install scapy 来进行安装
其次,在调用scapy模块时,必须使用 from scapy.all import * 才能正确调用。
在读入后我们知道,当scapy读入pcap文件时,实则是读入一个列表,可通过 cmd-python 命令进行调试,如下图所示:
在这里插入图片描述
我们可以从图中看到,因为pcap包包含了很多个数据包,所以读进来的pkts代表所有pcap包中包含的数据,而pkts[i]表示在pcap中的第i条数据,图中举例的是:我在wireshark中保存了过滤之后的仅含TCP协议的数据包, 所以得到的就是包含一条条TCP协议的数据包,若想知道每条数据包的具体格式,可通过show()函数进行结构的展示。要想提取出每条数据包中具体网络属性的值,利用pkts[i][
对应的结构的字段—TCP对应:‘Ethernet’、‘IPv6’、‘TCP’].具体属性名称,如下代码所示:

from scapy.all import *
pkts = rdpcap("tcp02.pcap")
pkt0=pkt[0]
dst=pkt0['Ethernet'].dst
version = pkt0['IPv6'].version
sport = pkt0['TCP'].sport

2、将pcap包里的数据导入到csv文件中

以下给出了对一条数据包的网络特性的提取,代码如下:

import csv
from scapy.all import *

pkts = rdpcap("tcp02.pcap")
pkt0 =pkts[0]

headers=
  • 7
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值