解析Arp数据包,我发现了这个很好的问题。
当收到Arp数据包时,我正在解析目标的IP地址。
我的六角哑巴中有c0 a8但是之后就结束了。我缺少数据!我在Wireshark中看到了数据,但我不通过WinPCap获取数据。
我之前还没遇到过这个问题。有什么想法吗?到目前为止还没有内存访问错误。可能只是运气。 :X
编辑: 我对处理数据包的主要看法来自示例pktdump_ex。
这是while行
while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0)
执行完毕后,snalen就是2b。
答案 0 :(得分:2)
正如他在评论中所指出的,这有点像一个错误的snaplen配置。如果你看一下winpcap api docs pcap_open() apidoc,它会说:
snaplen,:必须保留的数据包长度。对于过滤器接收的每个数据包,只有第一个“snaplen”字节存储在缓冲区中并传递给用户应用程序。例如,snaplen等于100意味着只存储每个数据包的前100个字节。
作为pcap_open的第二个参数的说明。除非您提供一些更详细的代码片段,否则这是最接近我们将得到的答案。