libpcap на OSX — попытка использовать статистический режим

Я пытаюсь скомпилировать программу на C, использующую libpcap в статистическом режиме. на ОС X. Исходный код был написан для Windows с использованием библиотеки winpcap. Версия libpcap на моем Mac никогда не слышала о pcap_setmode. функция, которую он использует - у меня неприятное ощущение, что это может быть специфично для Windows.

Есть ли способ захватить в режиме статистики на OSX? Если нет, есть ли что-то в архитектуре/возможностях ОС, что препятствует этому, или это дополнительная функция, добавленная в WinPcap, которая никогда не была функцией основной библиотеки?


person codebox    schedule 20.02.2011    source источник


Ответы (2)


pcap_setmode() имеет определение только в порте Win32, поскольку драйвер WinPcap для Windows — единственный механизм захвата пакетов, поддерживающий статистический режим; BPF в Mac OS X и *BSD, AIX и Solaris 11 не поддерживают его, сокеты PF_PACKET в Linux не поддерживают его, DLPI в Solaris и HP-UX не поддерживают его и т. д.

UN*X обычно поставляются с механизмом, который поддерживает перехват пакетов, поэтому libpcap может просто использовать его, не добавляя свой собственный код режима ядра; это означает, что он не может контролировать, какие средства есть у этих механизмов захвата - если у механизма захвата их нет, libpcap не может их добавить. В Windows такого механизма нет; он поставляется с NDIS, который может поддерживать такой механизм, поэтому WinPcap поставляется с драйвером режима ядра, который использует NDIS для реализации такого механизма и, таким образом, имеет больше контроля над тем, какие функции он предлагает.

person Community    schedule 19.10.2011

pcap_setmode() имеет определение только в порте Win32 (по неизвестным мне причинам).

person Yann Ramin    schedule 20.02.2011