OSX 上的 libpcap - 尝试使用统计模式

发布于 2024-10-18 12:49:05 字数 480 浏览 8 评论 0原文

我正在尝试编译一个在 统计模式 下使用 libpcap 的 C 程序在 OSX 上。原始代码是使用 winpcap 库为 Windows 编写的。我的 Mac 上的 libpcap 版本从未听说过 pcap_setmode它使用的函数 - 我有一种不舒服的感觉,它可能是 Windows 特定的。

有没有办法在 OSX 上以统计模式捕获?如果不是,操作系统的体系结构/功能是否存在阻止这种情况发生的情况,或者这是 WinPcap 中添加的一项额外功能,而该功能从来都不是主库的功能?

I'm trying to compile a C program that uses libpcap in statistical mode on OSX. The original code was written for Windows, using the winpcap library. The version of libpcap on my Mac has never heard of the pcap_setmode function that it uses - I've got a nasty feeling that it might be Windows-specific.

Is there any way to capture in stats-mode on OSX? If not, is there something about the architecture/capabilities of the OS that prevents this, or is this an extra feature added to WinPcap which has never been a feature of the main library?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北恋 2024-10-25 12:49:05

pcap_setmode() 仅在 Win32 端口中有定义,因为 Windows 的 WinPcap 驱动程序是唯一支持统计模式的数据包捕获机制; Mac OS X 和 *BSD 以及 AIX 和 Solaris 11 中的 BPF 不支持,Linux 中的 PF_PACKET 套接字不支持,Solaris 和 HP-UX 中的 DLPI 不支持,等等。

UN*Xes 一般都会出现具有支持捕获数据包的机制,因此 libpcap 可以直接使用它,而无需添加自己的内核模式代码;这意味着它无法控制这些捕获机制拥有哪些设施 - 如果捕获机制没有它,libpcap 就无法添加它。 Windows 没有这样的机制;它确实附带了 NDIS,它可以支持这种机制,因此 WinPcap 附带了一个内核模式驱动程序,该驱动程序使用 NDIS 来实现这种机制,从而对其提供的功能有更多的控制。

pcap_setmode() only has a definition in the Win32 port, because the WinPcap driver for Windows is the only packet capture mechanism that supports statistical mode; BPF in Mac OS X and *BSD and AIX and Solaris 11 don't support it, PF_PACKET sockets in Linux don't support it, DLPI in Solaris and HP-UX don't support it, etc..

UN*Xes generally come with a mechanism that supports capturing packets, so libpcap can just use that, without adding its own kernel-mode code; this means it can't control what facilities those capture mechanisms have - if a capture mechanism doesn't have it, libpcap can't add it. Windows doesn't come with such a mechanism; it does come with NDIS, which can support such a mechanism, so WinPcap comes with a kernel-mode driver that uses NDIS to implement such a mechanism, and thus has some more control over what features it offers.

转瞬即逝 2024-10-25 12:49:05

pcap_setmode() 仅在 Win32 端口中有定义(出于我未知的原因)。

pcap_setmode() only has a definition in the Win32 port (for unknown reasons to me).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文