2015-01-11 44 views
1

我正在使用Python与Scapy库来读取和写入.cap文件,但是我的.pcap文件中的一个在读取它时给了我这个错误/警告,并且没有数据包正在写入输出。其他.pcap文件工作正常(我自己录制的文件)。Scapy PcapReader:未知的LL类型[197]/[0xc5]。使用原始数据包。警告

下面是我正在使用的代码。任何有关这个问题的帮助表示赞赏。

from scapy.all import * 
import os 

count = 0 

file_name = "/root/Desktop/test.pcap" 

data = rdpcap(file_name) 

os.system("clear") 

filtered = (pkt for pkt in data 
    if UDP in pkt) 

def counting(count): 
    for pkt in data[UDP]: 
     count += 1 
    print count 

counting(count) 
wrpcap("/root/Desktop/testing.pcap", filtered) 

回答

1

该警告表明指定的文件保存其不受scapy支持与链接类型197数据包,并且因此分组被解释为原始数据包。

由于这些是原始数据包,因此scapy无法在其中找到UDP图层。因此,表达式(pkt for pkt in data if UDP in pkt)评估为没有项目产生的发电机。

因此,执行wrpcap("/root/Desktop/testing.pcap", filtered)时会写入空文件。


在搜索该链接类型here揭示tcpdump名此链路类型为LINKTYPE_ERF和它代表各个链路层类型,具有伪首部,用于Endace DAG卡和它封装Endace ERF记录。

更多的光线研究表明,您可能将指定的文件从ERF格式转换为scapy支持的普通pcap格式。有一些在线资源可以在此过程中为您提供帮助,例如thisthis。由于Wiresharksupports this format,您还可以通过Wireshark打开文件并将其保存为不同的格式。

+0

感谢您的信息,我会放弃这一点。我使用的是.pcap文件,我只是简单地将它保存为.cap文件中的.erf文件,但我并不知道封装。 –

相关问题