如何将 tcpdump 的输出修改为人类可读的?

如何将 tcpdump 的输出修改为人类可读的?

我有一个 tcpdump 命令:

tcpdump -i wlan0 dst port 80 and ! dst 192.168.1.201 and ! src 192.168.1.201 -vvv -s0 -w proba.txt

给出以下输出:

root@SERVER:/tmp# egrep "GET|Host:" proba.txt | awk 'BEGIN {FS=" "}{print $2}'
emaffia.hu
/
google.hu
/
www.google.hu
emaffia.hu
/textinputassistant/tia.png
www.google.hu
/logos/2011/pierre_de_fermat-2011-hp.jpg
www.google.hu
/gb/images/b_8d5afc09.png
ssl.gstatic.com
/favicon.ico
www.google.hu
/
hwsw.hu
/js/mootools-1.2.5.1-more.js
www.hwsw.hu

如何修改这些行以获得此输出?:

emaffia.hu/
google.hu/
www.google.hu
emaffia.hu/textinputassistant/tia.png
www.google.hu/logos/2011/pierre_de_fermat-2011-hp.jpg
www.google.hu/gb/images/b_8d5afc09.png
ssl.gstatic.com/favicon.ico
www.google.hu/
hwsw.hu/js/mootools-1.2.5.1-more.js
www.hwsw.hu

是否可以?

答案1

相反,您可能想研究一下tcpflow,它对协议进行解码并生成人类可读的文本流。默认情况下,它们会转到一个文件,但-c标志会将其打印在控制台上。tcpflow是我最喜欢的隐藏宝石之一。

答案2

不过,您可以通过管道传输解析命令的输出sed- 像这样:

 egrep "GET|Host:" proba.txt | awk 'BEGIN {FS=" "}{print $2}' | sed ':a;N;$!ba;s/\n\//\//g'

相关内容