1

scapyを使用してネットワーク経由で送信されている生のhtmlを表示しようとしています。私が抱えている問題は、tcpパケットのペイロードがASCIIとして出力されないことです。

def sniffer_callback(packet):
    print "[*] Got a packet"
    if(validate_packet(packet)):
            resend_packet(packet)
    else:
            resend_packet(packet)
             print "------------------------------"

def validate_packet(packet):
# Validate whether the packet came from the right domain    
     print "[!] Validating Packet"
      tcp = packet[TCP]
      print  tcp.payload

[*]パケットを受け取りました

[!]パケットの検証

HTTP / 1.1 200 OK

コンテンツタイプ:application / json; charset = utf-8

キャッシュ制御:max-age = 5

コンテンツエンコーディング:gzip

コンテンツの長さ:121

Accept-Ranges:バイト

日付:2012年10月11日木曜日23:45:45 GMT

年齢:4

接続:キープアライブ

P3P:CP = "CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONi OUR SAMo OTRo BUS PHY ONL UNI PUR COM NAV INT DEM CNT STA PRE"

m�=�0����MSkxqP�A��I�n������Fۧ3���/HE����jFn�Vm���xk��ZL��b��m�� �������"h��=�L、�2�Q����

これは私が受け取ったパケットの例ですが、httpヘッダーだけでなくパケット全体を表示する方法を考えています。

助けてくれてありがとう

4

1 に答える 1

2

選択したパケットは、実際にはgzipを使用して圧縮されています。このヘッダーに注意してください:

Content-Encoding: gzip

gzipモジュールで解凍できるはずです。ガイドは次の場所で入手できます。

http://www.diveintopython.net/http_web_services/gzip_compression.html

于 2012-10-11T23:59:17.293 に答える