Scapy PcapReader:未知LL类型[197] / [0xc5]。使用原始数据包。警告

时间:2015-01-11 15:16:55

标签: python parsing pcap scapy

我正在使用Python和Scapy库来读取和写入.cap文件,但是我的一个.pcap文件在读取时会给我这个错误/警告并且没有数据包被写入输出。其他.pcap文件工作正常(我自己录制的文件)。

以下是我正在使用的代码。欢迎任何有关该主题的帮助。

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 个答案:

答案 0 :(得分:1)

警告表明指定的文件包含197不支持的链接类型为scapy的数据包,因此数据包被解释为原始数据包。

由于这些是原始数据包,scapy无法在其中找到UDP图层。因此,表达式(pkt for pkt in data if UDP in pkt)求值为生成器而没有要生成的项。

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


搜索此链接类型here会显示tcpdump将此链接命名为LINKTYPE_ERF,并且它代表各种链接层类型,带有伪标头,用于{{1}卡片,它封装了Endace DAG条记录。

更轻松的研究表明,您可以将指定文件从Endace ERF格式转换为ERF支持的普通pcap格式。有一些在线资源可以帮助您完成此过程,例如thisthis。自scapy supports this format起,您也可以通过Wireshark打开文件,并以不同的格式保存。