1

Tcpflow 输出一堆文件,其中许多是来自 Web 服务器的 HTTP 响应。在内部,它们包含 HTTP 标头,包括 Content-type: 和其他重要的标头。我正在尝试编写一个脚本,该脚本可以仅提取有效负载数据(即图像/jpeg;文本/html;等)并将其保存到文件中[可选:具有适当的名称和文件扩展名]。

EOL 字符是 \r\n (CRLF),因此这使得它难以在 GNU 发行版中使用(根据我的经验)。

我一直在尝试以下方式:

sed /HTTP/,/^$/d  

删除从 HTTP (incl) 开头到 \r\n\r\n (incl) 结尾的所有文本,但我没有找到运气。我正在寻求任何在sed和/或方面有良好经验的人的帮助awk。我对 Perl 的经验为零,我更愿意为此使用通用的 GNU 命令行实用程序

在此处查找示例 tcpflow 输出文件。(坏链接)

谢谢,
费利佩

4

1 回答 1

2

本文建议foremost在输出上运行tcpflow以提取图像。它可以在该链接以及(至少)Debian、Fedora 和 Ubuntu 的存储库中找到。

我在您链接到的示例文件上进行了尝试,它似乎工作正常。

foremost -i tcpflow.out

它创建了一个名为“output”的目录,其中包含名为“gif”和“jpeg”的子目录,每个目录中都有文件。但是,文件名与标题中的文件名不匹配。

要更改文件的行尾,请执行以下操作:

dos2unix filename

或在管道中:

dos2unix < filename | nextcommand

其他感兴趣的链接:

于 2010-05-20T04:06:46.447 回答