当前位置: 技术问答>linux和unix
http gzip 解压
来源: 互联网 发布时间:2017-05-19
本文导语: 本帖最后由 wqz521nh 于 2014-05-29 16:22:14 编辑 在ubuntu下,利用libpcap去抓http包 然后分析得到网页标题。 得到数据包内容 解析,现在 遇到问题 , 根据数据包里 Content-Encoding:gzip得出 需要解压数据。 以下从网上得到...
得到数据包内容 解析,现在 遇到问题 ,
根据数据包里 Content-Encoding:gzip得出
需要解压数据。
以下从网上得到的解压http gzip代码
/* HTTP gzip decompress */
/* zdata 数据 nzdata 原数据长度 data 解压后数据 ndata 解压后长度 */
int httpgzdecompress(Byte *zdata, uLong nzdata,
Byte *data, uLong *ndata)
{
int err = 0;
z_stream d_stream = {0}; /* decompression stream */
static char dummy_head[2] = {
0x8 + 0x7 * 0x10,
(((0x8 + 0x7 * 0x10) * 0x100 + 30) / 31 * 31) & 0xFF,
};
d_stream.zalloc = NULL;
d_stream.zfree = NULL;
d_stream.opaque = NULL;
d_stream.next_in = zdata;
d_stream.avail_in = 0;
d_stream.next_out = data;
//if(inflateInit2(&d_stream, MAX_WBITS + 16) != Z_OK) return -1;
if(inflateInit2(&d_stream, 47) != Z_OK) return -1;
while(d_stream.total_out