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

时间:2011-02-20 13:50:35

标签: macos pcap winpcap libpcap packet-sniffers

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

在OSX上有没有办法在stats-mode中捕获?如果没有,有什么关于操作系统的架构/功能可以防止这种情况,或者这是一个额外的功能添加到WinPcap,它从来不是主库的功能?

2 个答案:

答案 0 :(得分:1)

pcap_setmode()在Win32端口中只有一个定义(原因不明)。

答案 1 :(得分:1)

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

UN * Xes通常带有支持捕获数据包的机制,因此libpcap可以使用它,而无需添加自己的内核模式代码;这意味着它无法控制捕获机制所具有的功能 - 如果捕获机制没有它,libpcap无法添加它。 Windows没有这样的机制;它确实带有NDIS,它可以支持这种机制,因此WinPcap带有一个内核模式驱动程序,它使用NDIS来实现这种机制,因此可以更好地控制它提供的功能。