3

任何人都可以为 C++ 推荐一个好的数据包嗅探器类吗?寻找一个可以在我的 c++ 程序中使用的简单可插入类,没有什么复杂的。

4

3 回答 3

17

仅仅通过在项目中插入一个类,您将永远无法拦截网络流量。数据包捕获功能需要内核模式支持,因此您至少需要让您的应用程序需要或安装 libpcap/WinPcap,正如 Will Dean 指出的那样。

大多数现代类 Unix 发行版都包含开箱即用的 libpcap,在这种情况下,您可以查看这个非常简单的示例:http ://www.tcpdump.org/pcap.htm

如果您使用的是 Windows,则您或多或少是靠自己的,尽管WinPcap编程与 libpcap 编程非常相似(不足为奇,因为它是 Win32 的 libpcap 端口。)可以在此处找到 SDK:http://www .winpcap.org/devel.htm

无论如何,无论操作系统如何,您需要 root / 管理员访问权限才能实际执行捕获。当然,仅使用该库来重放或分析预先捕获的数据不需要任何特殊权限。

于 2008-12-05T22:09:50.973 回答
2

你需要谈谈你的平台,因为这是一个平台而不是语言。

但是假设您使用的是常见的东西,请查看 pcap 或 winpcap。

于 2008-12-05T21:58:28.733 回答
1

Microsoft Network Monitor 有一个数据包捕获和分析 API,有关一些基本信息,请参阅netmon 博客

于 2008-12-05T22:30:55.517 回答