2012-02-11 17 views
33

Voglio eseguire tcpdump con alcuni parametri (ancora non so cosa usare). Quindi caricare la pagina stackoverflow.com.Come acquisire tutti i pacchetti HTTP usando tcpdump

L'output deve essere la comunicazione HTTP. Più tardi voglio usarlo come script di shell. Quindi, ogni volta che voglio controllare la comunicazione HTTP di un sito site.com posso semplicemente eseguire script.sh site.com

La comunicazione HTTP dovrebbe essere abbastanza semplice. Mi piace seguire

GET /questions/9241391/how-to-capture-all-the-http-communication-data-using-tcp-dump 
Host: stackoverflow.com 
... 
... 

HTTP/1.1 200 OK 
Cache-Control: public, max-age=60 
Content-Length: 35061 
Content-Type: text/html; charset=utf-8 
Expires: Sat, 11 Feb 2012 15:36:46 GMT 
Last-Modified: Sat, 11 Feb 2012 15:35:46 GMT 
Vary: * 
Date: Sat, 11 Feb 2012 15:35:45 GMT 


.... 
decoded deflated data 
.... 

Ora, potrebbe dirmi quali opzioni dovrei usare con tcpdump per catturarlo.

+1

sembra "curl -v site.com" è quello che ti serve. :) –

risposta

87

Esso può essere fatto da ngrep

ngrep -q -d eth1 -W byline host stackoverflow.com and port 80 
    ^^  ^  ^  
     | |  |   | 
     | |  |   | 
     | |  |   v 
     | |  |   filter expression 
     | |  |   
     | |  +--> -W is set the dump format ("normal", "byline", "single", "none") 
     | | 
     | +----------> -d is use specified device instead of the pcap default 
     | 
     +-------------> -q is be quiet ("don't print packet reception hash marks") 
+1

Nota: per coloro che utilizzano ngrep 1.45 installato tramite brew in OS X 10.9.x/Mavericks, può causare "Errore di segmentazione: 11". jfarcand ha trovato una soluzione: https://gist.github.com/jfarcand/8302675 e questo funziona per me: 'ngrep -q -W byline -d en0 '' 'host some_hostname e port 80''. –

+8

Thumbup per l'arte ASCII. – neevek

19

In base a quanto menzionato, ngrep (su Unix) e Fiddler (Windows) potrebbero essere soluzioni migliori/più semplici.

Se si vuole assolutamente usare tcpdump, provare le seguenti opzioni

 
tcpdump -A -vvv host destination_hostname 

-A (ascii) 
-vvv (verbose output) 
Problemi correlati