小编MrN*_*ber的帖子

如何读取Pyshark以外的.cap文件比Scapy的rdpcap()更快?

我一直在寻找一种方法将802.11数据包从.cap文件转换为数组.到目前为止,我发现:

  • Scapy:这是一个很好的,文档可用,但太慢,当我尝试打开一个大小> 40 Mb的文件,我只是一直挂着,直到它消耗我所有的Ram(所有16演出),此时我的电脑只是块,我必须重新启动它

  • Pyshark:没有任何Scapy的问题,但文档太稀缺,我找不到处理和获取802.11数据包属性的方法

所以我想也许有更好的解决方案,或者也许有人对pyshark有一些经验?

from scapy.all import *
import pyshark
from collections import defaultdict
import sys
import math
import numpy as np
counter=0
Stats = np.zeros((14))
filename='cap.cap'

a = rdpcap(filename)
print len(a)
for p in a:
        pkt = p.payload
        #Management packets
        if p.haslayer(Dot11) and p.type == 0:
                ipcounter = ipcounter +1
                Stats[p.subtype] = Stats[p.subtype] + 1

print Stats
Run Code Online (Sandbox Code Playgroud)

注意:当我启动带有10兆字节输入的程序时(例如)大约需要20秒左右,但它确实有效,我想知道为什么会这样,为什么它与pyshark如此不同以及它是什么类型的计算在做什么?

python pcap

4
推荐指数
1
解决办法
9515
查看次数

标签 统计

pcap ×1

python ×1