我正在尝试使用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确定
Content-Type:application / json; charset = utf-8
缓存控制:max-age = 5
内容编码:gzip
内容长度:121
Accept-Ranges:bytes
日期: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 MSkxqPAInFާ3/ HEjFnVmxkZLbm” H = L,2Q
这是我收到的数据包的示例,但我想知道如何查看整个数据包而不仅仅是http头。
提前感谢您的帮助
答案 0 :(得分:2)
您选择的数据包实际上是使用gzip压缩的。注意这个标题:
Content-Encoding: gzip
您应该可以使用gzip
模块对其进行解压缩。有关指南,请访问:
http://www.diveintopython.net/http_web_services/gzip_compression.html