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

时间:2018-08-22 13:37:40

标签: python-3.x dpkt

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解析器代码。但是它显示了上面 错误。谁能帮忙。

2 个答案:

答案 0 :(得分:0)

能否请您检查此链接。 Related Answer

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

答案 1 :(得分:0)

以二进制模式打开文件

f = open('gtp.pcap', 'rb')
pcap = dpkt.pcap.Reader(f)
...