我正在测试中捕获一些数据包。我不想用相同的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。我需要抓住它们。
有人能帮助我吗?提前谢谢。
答案 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