libpcap на OSX - пытается использовать статистический режим - PullRequest
0 голосов
/ 20 февраля 2011

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

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

Ответы [ 2 ]

1 голос
/ 19 октября 2011

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

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

1 голос
/ 20 февраля 2011

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

...