在 C 应用程序中使用(嵌入?)wireshark 进行嗅探

在 C 应用程序中使用(嵌入?)wireshark 进行嗅探

我正在编写一个 C/C++ 应用程序,它需要(除其他外)嗅探数据包并将输出保存在文件中。几天后,wireshark 将读取和处理该文件,并使用 LUA 脚本执行其他操作。

我的问题是关于应用程序必须提供的嗅探部分。我可以看到两种方法可以做到这一点:

  1. 在后台 Fork wireshark 进程(当然使用命令行版本)

  2. 使用 wireshark 作为库:无需分叉但包含“wireshark.h”之类的内容并链接到 libwireshark.so,从而使用函数调用进行嗅探。

到目前为止我还没有找到关于#2 的任何文档,而且似乎#1 是在我的代码中嵌入嗅探功能的“正确方法”。

您认为我做的对吗?wireshark 是否允许嵌入为库?

答案1

你为什么不使用libpcap? 它是 Wireshark 本身使用的 C/C++ 嗅探库。

相关内容