WinPCap数据被截断

时间:2010-02-16 07:22:29

标签: c++ winpcap truncation

解析Arp数据包,我发现了这个很好的问题。

当收到Arp数据包时,我正在解析目标的IP地址。

我的六角哑巴中有c0 a8但是之后就结束了。我缺少数据!我在Wireshark中看到了数据,但我通过WinPCap获取数据。

我之前还没遇到过这个问题。有什么想法吗?到目前为止还没有内存访问错误。可能只是运气。 :X

编辑: 我对处理数据包的主要看法来自示例pktdump_ex。

这是while行

while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0)

执行完毕后,snalen就是2b。

1 个答案:

答案 0 :(得分:2)

正如他在评论中所指出的,这有点像一个错误的snaplen配置。如果你看一下winpcap api docs pcap_open() apidoc,它会说:

  

snaplen,:必须保留的数据包长度。对于过滤器接收的每个数据包,只有第一个“snaplen”字节存储在缓冲区中并传递给用户应用程序。例如,snaplen等于100意味着只存储每个数据包的前100个字节。

作为pcap_open的第二个参数的说明。除非您提供一些更详细的代码片段,否则这是最接近我们将得到的答案。