过滤具有给定IP地址的ICMP数据包

时间:2019-01-18 08:43:32

标签: wireshark pcap libpcap

我想在两台机器之间过滤ICMP数据包。

我已经创建了两个虚拟机,它们可以相互ping通。

我想在Wireshark和使用PCAP库的C程序中成功使用此过滤器。

假设第一台计算机的IP为10.0.0.1,第二台计算机的IP为10.0.0.2。

我使用this link在第一台机器的Wireshark的filter部分中编写了以下内容。

ip.dst == 10.0.0.2 && ip.src == 10.0.0.1 && !(icmp[0] == B ) && icmp

如果我对第二台机器ping 10.0.0.2进行ping操作,则可以在Wireshark中看到过滤后的结果。但是,我不想看到这些以外的其他数据包。

如果我远程登录第二台机器telnet 10.0.0.2,Wireshark还将捕获那些Telnet和TCP数据包。我不要。

此外,如果我ping外部网站ping 185.60.216.35,Wireshark也会捕获该内容。源地址显示为10.0.0.1,但目标地址为186.60.216.35。

  

我只想过滤机器1到机器2的连接,反之亦然,它应该   仅过滤ICMP连接。

我在做什么错了?

ifconfig的第一台机器:

eth0    Link encap:Ethernet  HWaddr 08:00:27:55:70:a9  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0

ifconfig在第二台计算机上:

eth0    Link encap:Ethernet  HWaddr 08:00:27:73:6d:62  
          inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0

此外,pcap filter expression函数中的pcap_compile应该是什么?

0 个答案:

没有答案