不。
libwireshark 不打算在 Wireshark 本身之外使用,尝试这样做会让您自己试图找出问题所在。libwireshark 实际上是 Wireshark的数据包分析部分(称为epan for Ethereal packet an alyzer),您可以在开发人员指南中看到不只是 Wireshark。libwireshark 实际提供的是所有内置协议解析器的主接口、插件解析器的钩子以及完整的数据包解析 API。它依赖于 Wireshark 的其余部分设置的机制,这些机制不是直接的数据包解析工具,而是使解析器能够完成它们的工作(例如,分配释放内存块、处理压缩或加密数据等)。
而是写一个解剖器。
如果您的项目是以某种方式严格分析网络流量,您可能需要考虑为 Wireshark 编写解析器,而不是重新发明 Wireshark 可以为您提供的许多轮子。如果你需要做一些更复杂的事情,比如监控网络流量,然后启动其他任务或自己发送数据,你可能最好还是tshark
像现在一样使用 shell 脚本(请记住,你不应该让tshark
运行非常在任何情况下很长一段时间)。
如果您真的非常想直接使用 libwireshark,您将需要以某种方式解决它的所有依赖项(最好将其设为真正的独立库)并提供它对 Wireshark(或 tshark)实际运行所做的假设。libwireshark 的代码组织良好,只是它由 Wireshark 源代码树下的整个 epan 目录组成,并根据 Wireshark 仍然是 Ethereal 时建立的约定进行布局。每个函数的文档在公开可见时都在头文件中提供,并且在每种情况下都在源文件中更深入地提供。还要记住README.developer与您拥有的源代码版本一起分发是获得一些提示的好地方(如果您想执行此任务,您不妨阅读所有 README.* 文件)。