使用通配符/正则表达式按主机名过滤 tcpdump 并显示详细输出

使用通配符/正则表达式按主机名过滤 tcpdump 并显示详细输出

是否可以在 tcpdump 中创建表达式来使用通配符过滤传入的数据包?

像这样:

tcpdump -v -i bond0 -c 200 -Z root udp port 514 and src server-*.com

它不起作用...我只能使用精确的名称或 IP 进行过滤:

tcpdump -v -i bond0 -c 200 -Z root udp port 514 and src server-oOo.domain.com
tcpdump -v -i bond0 -c 200 -Z root udp port 514 and src 10.20.32.100

我知道您可以使用 grep 进行过滤,但是当您使用详细输出时,它将每个数据包生成多行,使得 grep 在这种情况下无法使用(它将省略这些行):

tcpdump -v -i bond0 -c 200 -Z root udp port 514 | grep 'server-.*\.com'

谢谢你!

答案1

所以,最后,我发现无论您使用 -v 还是 -vvv(如果我错了请纠正我)总是只会多一行,因此您可以这样做:

tcpdump -v -i bond0 -c 200 -Z root udp port 514 | grep server-*.com -A 1

相关内容