pcap_dispatch() всегда возвращает 0 на Mac OSX для интерфейса Wi-Fi

У меня есть несколько устройств, подключенных к маршрутизатору Wi-Fi, но pcap_dispatch() всегда возвращает 0 для интерфейса Wi-Fi при захвате в реальном времени на Mac OS X. Этот же код захватывает ответ в случае проводного интерфейса. Пожалуйста, уточните, пропустил ли я здесь какой-либо флаг.

1 ответ

Решение

Если вы снимаете в режиме мониторинга, вы будете получать собственные пакеты 802.11, которые не похожи на пакеты Ethernet, поэтому фильтрация, аналогичная Ethernet, не будет работать.

Кроме того, если вы снимаете в режиме мониторинга в защищенной сети, то есть в сети, использующей WEP или WPA/WPA2, все, что находится за заголовком 802.11, будет зашифровано, и вы не сможете фильтровать его.

Так:

  • если вы находитесь в незащищенной сети, попробуйте такой фильтр, как

wlan dst 70:73:cb:c1:7c:61 and (arp or (vlan and arp))

  • если вы находитесь в защищенной сети, попробуйте фильтр, такой как wlan dst 70:73:cb:c1:7c:61и убедитесь, что программа, которая считывает пакеты, либо просто вслепую записывает их в файл захвата, либо способна дешифровать пакеты WEP или WPA / WPA2 (единственная программа, которую я знаю, которая может расшифровать их, это Wireshark, хотя некоторые другие могут быть в состоянии сделать это также).
Другие вопросы по тегам