不要使用tcpdump捕获具有相同源和目标IP的数据包

时间:2017-01-24 13:46:23

标签: linux pcap tcpdump

我正在测试中捕获一些数据包。我不想用相同的src和dst ip捕获数据包。我怎样才能做到这一点?

我在下面试过

tcpdump -i any '(not src host 10.10.10.10) and (not dst host 10.10.10.10)'

结果数据包捕获不满意。因为,我有一些数据包从src主机10.10.10.10到dst主机10.10.10.20。我需要抓住它们。

有人能帮助我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试:

tcpdump -i any 'not ((src host 10.10.10.10) and (dst host 10.10.10.10))'

如果您正确应用De Morgan's Theorem,以下内容也是等效的:

tcpdump -i any '(not src host 10.10.10.10) or (not dst host 10.10.10.10)'

如果您将tcpdump-d选项附加到两者,您将看到它们实际上与生成的编译数据包匹配代码等效。我得到以下两个:

(000) ldh      [14]
(001) jeq      #0x800           jt 2    jf 6
(002) ld       [28]
(003) jeq      #0xa0a0a0a       jt 4    jf 13
(004) ld       [32]
(005) jeq      #0xa0a0a0a       jt 12   jf 13
(006) jeq      #0x806           jt 8    jf 7
(007) jeq      #0x8035          jt 8    jf 13
(008) ld       [30]
(009) jeq      #0xa0a0a0a       jt 10   jf 13
(010) ld       [40]
(011) jeq      #0xa0a0a0a       jt 12   jf 13
(012) ret      #0
(013) ret      #65535