【发布时间】:2021-10-05 20:13:12
【问题描述】:
我想用 libpcap 解码 zst 和 gz pcap,但我找不到任何这样做的例子。当然我不想有一个临时解压的 pcap 文件。 你们能给我指出正确的方法吗?
谢谢
【问题讨论】:
我想用 libpcap 解码 zst 和 gz pcap,但我找不到任何这样做的例子。当然我不想有一个临时解压的 pcap 文件。 你们能给我指出正确的方法吗?
谢谢
【问题讨论】:
Libpcap 目前不支持读取压缩文件。
如果您不想有一个临时解压缩的 pcap 文件,唯一的方法是让您的程序创建一个管道,运行另一个程序来读取压缩文件并将解压缩的文件数据写入标准输出,其标准输出是管道的写入端,从管道的读取端创建标准 I/O 流(例如,在类 Unix 系统上使用 fdopen()),然后使用 pcap_fopen_offline()将标准 I/O 流作为捕获文件打开。
这样,其他程序将进行解压,但会将其写入管道而不是文件,您的程序将从管道中读取解压后的数据。
【讨论】:
"-" 作为参数传递给pcap_open_offline(),它将打开标准输入。
pcap_t 的形式打开管道并读取它 - 你需要将解压缩代码合并到您的应用程序中。