我目前正在開發一個程序,該程序需要一個.pcap文件並使用scapy軟件包將所有數據包通過ip分隔開。我想解壓使用gzip包壓縮的有效負載。我可以告訴大家,如果有效載荷gzip壓縮的,因爲它包含使用Python解壓縮數據包的壓縮負載
Content-Encoding: gzip
我想使用
fileStream = StringIO.StringIO(payload)
gzipper = gzip.GzipFile(fileobj=fileStream)
data = gzipper.read()
解壓縮的有效載荷,其中
payload = str(pkt[TCP].payload)
當我試圖做到這一點我得到錯誤
IOError: Not a gzipped file
當我打印的第一有效載荷我得到
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: text/html; charset=utf-8
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Sat, 30 Mar 2013 19:23:33 GMT
Content-Length: 15534
Connection: keep-alive
Set-Cookie: _FS=NU=1; domain=.bing.com; path=/
Set-Cookie: _SS=SID=F2652FD33DC443498CE043186458C3FC&C=20.0; domain=.bing.com; path=/
Set-Cookie: MUID=2961778241736E4F314E732240626EBE; expires=Mon, 30-Mar-2015 19:23:33 GMT; domain=.bing.com; path=/
Set-Cookie: MUIDB=2961778241736E4F314E732240626EBE; expires=Mon, 30-Mar-2015 19:23:33 GMT; path=/
Set-Cookie: OrigMUID=2961778241736E4F314E732240626EBE%2c532012b954b64747ae9b83e7ede66522; expires=Mon, 30-Mar-2015 19:23:33 GMT; domain=.bing.com; path=/
Set-Cookie: SRCHD=D=2758763&MS=2758763&AF=NOFORM; expires=Mon, 30-Mar-2015 19:23:33 GMT; domain=.bing.com; path=/
Set-Cookie: SRCHUID=V=2&GUID=02F43275DC7F435BB3DF3FD32E181F4D; expires=Mon, 30-Mar-2015 19:23:33 GMT; path=/
Set-Cookie: SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20130330; expires=Mon, 30-Mar-2015 19:23:33 GMT; domain=.bing.com; path=/
?}k{?H????+0?#!?,_???$?:?7vf?w?Hb???ƊG???9???/9U?\$;3{9g?ycAӗ???????W{?o?~?FZ?e ]>??<??n?????????????d?t??a?3?
?2?p??eBI?e??????ܒ?P??-?Q?-L?????ǼR?³?ׯ??%'
?2Kf?7???c?Y?I?1+c??,ae]?????<{?=ƞ,?^?J?ď???y??6O?_?z????_?ޞ~?_?????Bo%]???_?????W=?
有關其他信息,這是分離,因爲它包含的內容編碼數據包:從gzip的一個項目提供了一個示例.pcap文件。
我可能是錯誤的這一點,但我懷疑'gzip.GzipFile'要對付*文件*,如由類/函數的名稱和文檔提供(無論如何,對於2.7.x而言)。爲了壓縮/解壓縮* buffers *,可能'zlib'模塊(特別是'compress'和'decompress'函數)可能更合適...... – twalberg
@twalberg,不,StringIO將會很好。 OP的問題是他沒有將壓縮的消息體與頭分開,而是試圖解壓縮完整的消息。 –
@LukasGraf這是我第二次猜測,但問題並不清楚是否有任何事情正在做刪除標題等...... – twalberg