【发布时间】:2010-01-25 15:19:43
【问题描述】:
我正在使用 C 分析 Pcap 捕获,我需要解压缩 HTTP 的 Gzipped 正文 回复。 我知道我可以手动使用 Wireshark 来做到这一点,但我需要在我的程序中即时完成。
我的理解是我应该研究 zlib 和 RFC。但既然是一个小分析程序,你知道我在哪里可以找到快速的解决方案吗?
谢谢
【问题讨论】:
我正在使用 C 分析 Pcap 捕获,我需要解压缩 HTTP 的 Gzipped 正文 回复。 我知道我可以手动使用 Wireshark 来做到这一点,但我需要在我的程序中即时完成。
我的理解是我应该研究 zlib 和 RFC。但既然是一个小分析程序,你知道我在哪里可以找到快速的解决方案吗?
谢谢
【问题讨论】:
听起来您不需要从您已经知道的内容中阅读任何其他 RFC。您无需了解压缩算法即可使用它。
使用 zlib 非常简单。
您可以在几行代码内做到这一点:Here is an example。
【讨论】:
很可能,无论您使用哪种语言构建分析程序,都应该有一个库已经准备好用于解码 gzip 压缩流。 Google 或 Bing 用于“your-language-of-choice gzip implementation”或类似的东西,您可能会得到解决问题的方法。
作为最后的手段,您可能总是让您的程序使用GNU gzip(必须为您选择的系统构建一个版本),方法是向它提供数据并使用 gzip 的解压缩输出进行处理。
【讨论】:
解决了!我在 gzip 上找到了一个名为 minigzip 的实现。这是一个很好的程序,我将用作参考实现。
【讨论】:
通过将 Accept-Encoding 客户端标头重写为 Accept-Encoding 的代理运行它不是更简单吗:compress;q=0, gzip;q=0
?
C.
【讨论】: