不是一个pcap捕获文件(坏魔法) - scapy python

pyt*_*ong 2 python scapy

我在尝试打开.pcap文件时遇到问题.在scapy.utils中有RawPcapReader

    try:
        self.f = gzip.open(filename,"rb")
        magic = self.f.read(4)
    except IOError:
        self.f = open(filename,"rb")
        magic = self.f.read(4)
    if magic == "\xa1\xb2\xc3\xd4": #big endian
        self.endian = ">"
    elif  magic == "\xd4\xc3\xb2\xa1": #little endian
        self.endian = "<"
    else:
        raise Scapy_Exception("Not a pcap capture file (bad magic)")
    hdr = self.f.read(20)
    if len(hdr)<20:
        raise Scapy_Exception("Invalid pcap file (too short)")
Run Code Online (Sandbox Code Playgroud)

我的魔法有价值"\n\r \n \n \n"但RawPcapReader期待魔法=="\ xa1\xb2\xc3\xd4"或魔术=="\ xd4\xc3\xb2\xa1".

你能告诉我可能是什么问题吗?用.pcap文件?我正在使用python版本2.7

小智 11

"\n\r \n \n"(\ x0A\x0D\x0D\x0A)的神奇值表示您的文件实际上是.pcapng格式,而不是libpcap

解决方案很简单

在Wireshark'另存为':Wireshark/tcpdump - pcap

或者使用tshark:

$tshark -r old.pcapng -w new.pcap -F libpcap
Run Code Online (Sandbox Code Playgroud)