사람이 읽을 수 있도록 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'

관련 정보