项目中自己需要写个程序通过
pcap-filter表达式过滤数据包,测试时发现过滤结果不对!现将问题简化如下(以tcpdump举例)
问题描述
- 通过 tcpdump 过滤出173_20170107_180747_p5p2.pcap 文件中IP为 10.10.88.173的数据包,并保存为result.pcap
- 过滤命令
tcpdump -r 173_20170107_180747_p5p2.pcap -w result.pcap "host 10.10.88.173" - 原始数据包用wireshark打开,设置过滤表达式为
ip.addr==10.10.88.173,发现IP为 10.10.88.173的数据包个数为7150 - 但用wireshark打开tcpdump过滤出的result.pcap文件,发现其数据包个数为
7152,如下图!(此时如果知道原因就不用往下看了)


在项目中,使用tcpdump过滤特定IP的数据包时遇到问题,过滤后的结果包含了ARP数据包。尽管使用了正确的过滤表达式,但发现过滤后的pcap文件与Wireshark显示的不一致。问题在于tcpdump默认会捕获ARP协议的数据包。解决方案是修改tcpdump过滤表达式,明确排除ARP和RARP协议,以确保只过滤IP层的特定IP数据包。

3791

被折叠的 条评论
为什么被折叠?



