2012-02-11 7 views
33

का उपयोग कर सभी HTTP पैकेट को कैप्चर करने के लिए मैं कुछ पैरामीटर के साथ tcpdump चलाने के लिए चाहता हूं (अभी भी पता नहीं है कि क्या उपयोग करना है)। फिर यह stackoverflow.com पृष्ठ लोड करें।tcpdump

आउटपुट HTTP संचार होना चाहिए। बाद में मैं इसे एक शेल स्क्रिप्ट के रूप में उपयोग करना चाहता हूं। इसलिए जब भी मैं साइट साइट.com के HTTP संचार की जांच करना चाहता हूं, तो मैं script.sh site.com

चला सकता हूं HTTP संचार पर्याप्त सरल होना चाहिए। निम्नलिखित की तरह।

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 
.... 

अब, क्या आप मुझे बता सकते हैं कि इसे कैप्चर करने के लिए tcpdump के साथ मुझे किन विकल्पों का उपयोग करना चाहिए।

+1

"curl -v site.com" जैसा दिखता है वह आपको चाहिए। :) –

उत्तर

87

यह द्वारा 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

नोट: ओएस एक्स 10.9.एक्स/मैवरिक्स में ब्रू के माध्यम से ngrep 1.45 का उपयोग करने वाले लोगों के लिए, यह "सेगमेंटेशन गलती: 11" का कारण बन सकता है। jfarcand को यहां एक वर्कअराउंड मिला: https://gist.github.com/jfarcand/8302675 और यह मेरे लिए काम करता है: 'ngrep -q -W byline -d en0 '' 'होस्ट कुछ_होस्टनाम और पोर्ट 80''। एएससीआईआई कला के लिए –

+8

थंबअप। – neevek

19

आपने जो उल्लेख किया है उसके आधार पर, ngrep (यूनिक्स पर) और फिडलर (विंडोज) बेहतर/आसान समाधान हो सकते हैं।

आप पूरी तरह tcpdump उपयोग करने के लिए, निम्न विकल्पों में

 
tcpdump -A -vvv host destination_hostname 

-A (ascii) 
-vvv (verbose output) 
-2

tcpdump मैं eth0 डब्ल्यू dump3.pcap -v 'टीसीपी किया जा सकता है बाहर की कोशिश करना चाहते हैं और (((आईपी [2: 2] - ((आईपी [0] & 0xf) < < 2)) - ((टीसीपी [12] & 0xf0) >> 2)) = 0) '

रों ee http://www.tcpdump.org/manpages/tcpdump.1.html

संबंधित मुद्दे