2
import dpkt

f = open('gtp.pcap')

pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
       eth = dpkt.ethernet.Ethernet(buf)

print(eth)

Traceback (most recent call last):
  File "new.py", line 4, in <module>
    pcap = dpkt.pcap.Reader(f)
  File "/home/user/gtp_gaurang/venv/lib/python3.5/site-packages/dpkt/pcap.py", line 244, in __init__
    buf = self.__f.read(FileHdr.__hdr_len__)
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 16: invalid start byte
(venv) user@user-OptiPlex-7010:~/gtp_gaurang$ python3 new.py
Traceback (most recent call last):
  File "new.py", line 4, in <module>
    pcap = dpkt.pcap.Reader(f)
  File "/home/user/gtp_gaurang/venv/lib/python3.5/site-packages/dpkt/pcap.py", line 244, in __init__
    buf = self.__f.read(FileHdr.__hdr_len__)
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 16: invalid start byte

当我尝试解析一个简单的 pcap 文件时,这个错误是什么?

我正在运行这个简单的 pcap 解析器代码。但它显示了上述错误。任何人都可以请帮忙。

4

2 回答 2

1

你能检查一下这个链接吗? 相关答案

根据答案建议,UTF-8 遇到无法解码的无效字节。因此,如果您只是以二进制格式读取文件,则不会出现此错误,因为不会发生解码并且文件内容将保持为字节。

于 2018-08-22T16:11:20.037 回答
0

以二进制模式打开文件

f = open('gtp.pcap', 'rb')
pcap = dpkt.pcap.Reader(f)
...
于 2019-07-08T12:17:01.343 回答