【问题标题】:libpcap on OSX - trying to use statistical modeOSX 上的 libpcap - 尝试使用统计模式
【发布时间】:2011-02-20 13:50:35
【问题描述】:

我正在尝试在 OSX 上编译使用 statistical mode 中的 libpcap 的 C 程序。原始代码是使用 winpcap 库为 Windows 编写的。我 Mac 上的 libpcap 版本从未听说过它使用的 pcap_setmode 函数 - 我有一种讨厌的感觉,它可能是特定于 Windows 的。

有什么方法可以在 OSX 上以统计模式捕获?如果没有,操作系统的体系结构/功能是否会阻止这种情况,或者这是添加到 WinPcap 的额外功能,而这从来不是主库的功能?

【问题讨论】:

    标签: macos pcap winpcap libpcap packet-sniffers


    【解决方案1】:

    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 来实现这种机制,因此可以更好地控制它提供的功能。

    【讨论】:

      【解决方案2】:

      pcap_setmode() 仅在 Win32 端口中有一个定义(我不知道原因)。

      【讨论】:

        猜你喜欢
        • 2018-03-27
        • 1970-01-01
        • 2021-05-10
        • 2017-04-06
        • 1970-01-01
        • 2015-10-20
        • 2014-04-12
        • 2010-10-05
        • 2022-01-15
        相关资源
        最近更新 更多