時崎狂三_ 2021-08-17 13:49 采纳率: 0%
浏览 140
已结题

关于使用PcapReader读取pcap包时抛出EOFError异常的问题

在python中使用scapy包中的PcapReader读取pcap文件时,抛出EOFError如何解决?
错误信息如下:

Traceback (most recent call last):
  File "D:/学习/科研训练/wiresharkanasying/main.py", line 7, in <module>
    map=Quantitystatistics.Quantitystatistics(s1)
  File "D:\学习\科研训练\wiresharkanasying\Quantitystatistics.py", line 15, in __init__
    self.map=self.Ethernet_prostatistics()
  File "D:\学习\科研训练\wiresharkanasying\Quantitystatistics.py", line 22, in Ethernet_prostatistics
    data = self.pcap.read_packet()
  File "D:\Anaconda\lib\site-packages\scapy\utils.py", line 1038, in read_packet
    rp = super(PcapReader, self).read_packet(size=size)
  File "D:\Anaconda\lib\site-packages\scapy\utils.py", line 976, in read_packet
    raise EOFError
EOFError

使用的pcap包是用wireshark随便抓取的一个包

在看了方法源码之后知道了抛出异常的原因:

    def read_packet(self, size=MTU):
        """return a single packet read from the file as a tuple containing
        (pkt_data, pkt_metadata)

        raise EOFError when no more packets are available
        """
        hdr = self.f.read(16)
        if len(hdr) < 16:
            raise EOFError
        sec, usec, caplen, wirelen = struct.unpack(self.endian + "IIII", hdr)
        return (self.f.read(caplen)[:size],
                RawPcapReader.PacketMetadata(sec=sec, usec=usec,
                                             wirelen=wirelen, caplen=caplen))

应该如何修改才能成功读取pcap包呢,或者说要对pcap包进行什么预处理吗

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-08-18 19:38
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    ​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突