tcpdump过滤特定IP的数据包,结果不对?

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中自己需要写个程序通过pcap-filter表达式过滤数据包,测试时发现过滤结果不对!现将问题简化如下(以tcpdump举例)

问题描述

  1. 通过 tcpdump 过滤出173_20170107_180747_p5p2.pcap 文件中IP为 10.10.88.173的数据包,并保存为result.pcap
  2. 过滤命令 tcpdump -r 173_20170107_180747_p5p2.pcap -w result.pcap "host 10.10.88.173"
  3. 原始数据包用wireshark打开,设置过滤表达式为ip.addr==10.10.88.173,发现IP为 10.10.88.173的数据包个数为7150
  4. 但用wireshark打开tcpdump过滤出的result.pcap文件,发现其数据包个数为7152,如下图!(此时如果知道原因就不用往下看了)
    image_1b5sh1esi12fhcde4ln8id1k1r1c.png-97.6kB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值