![如何将 tcpdump 的输出修改为人类可读的?](https://linux22.com/image/17540/%E5%A6%82%E4%BD%95%E5%B0%86%20tcpdump%20%E7%9A%84%E8%BE%93%E5%87%BA%E4%BF%AE%E6%94%B9%E4%B8%BA%E4%BA%BA%E7%B1%BB%E5%8F%AF%E8%AF%BB%E7%9A%84%EF%BC%9F.png)
我有一个 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'