整包长度

2024-09-24 06:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用tcpdump使用参数-s 100(这意味着我只捕获数据包的头部)。在

当我加载.pcap文件并用Scapy处理它时,我会:

pkts = rdpcap(pcapfile)
totalbytes = 0
for pkt in pkts:
    totalbytes += len(pkt)

但是,当我截短捕获时,做len(pkt)不会给出整个包的长度(帧长度),它会给我捕获的包长度。我怎样才能得到真正的包长度?在

Extra:正如我以前在某些场合所做的那样,我在wireshark中打开pcap文件并搜索感兴趣的十六进制值。但在这种情况下(框架长度)将显示我要查找的值,但我无法找到wireshark在不捕获整个数据包的情况下获取此实际数据包长度的方法。在


Tags: 文件参数len情况pcap数据包scapytcpdump
1条回答
网友
1楼 · 发布于 2024-09-24 06:30:50

rdpcap函数使用PcapReader类来读取数据包。不幸的是,这个类丢弃了您在read_packet方法中查找的信息,即使它可以在pcap文件中找到。所以你必须直接使用RawPcapReader。在

totalbytes = 0
for pkt, (sec, usec, wirelen) in RawPcapReader(pcapfile):
    totalbytes += wirelen

相关问题 更多 >