2013-07-23 4 views
0

Я пытаюсь обнюхать пакеты 802.11 на устройстве Wi-Fi в режиме монитора. Я получаю ошибочный вывод. Подтверждено, что я должен использовать тип уровня ссылки как DLT_IEEE_802_11_RADIO (127). Я не получаю точный формат пакета, как у меня есть для ethernet. Я хочу взять MAC-адрес и значения RSSI из этих пакетов. Я делаю свой код на C++. Могу ли я узнать, как получить доступ к этим значениям.Libpcap sniffing prolem for 802.11

ответ

0

DLT_IEEE_802_11_RADIO

tcpdump.org link-layer header types page говорит о LINKTYPE_IEEE802_11_RADIOTAP/DLT_IEEE802_11_RADIO:

LINKTYPE_IEEE802_11_RADIOTAP 127 DLT_IEEE802_11_RADIO Radiotap link-layer information за которым следует заголовок 802.11.

Страница, связанная с описанием того, как выглядит заголовок рационализатора. Это несколько сложно, поэтому ваш код для его обработки будет несколько сложным, хотя, если все, что вам нужно, это индикатор уровня сигнала, это будет легче сделать.

Сила сигнала будет либо strength in dBm, то есть decibels from 1 milliwatt, или strength in dB from some unspecified arbitrary reference point. Ни один из них не является «RSSI», как указано в спецификации 802.11, поскольку они могут быть отрицательными, но они потенциально более полезны, чем «RSSI», как указано в спецификации 802.11, так как все 802.11 «RSSI» позволяет вам сравнивать будет ли один сигнал сильнее или слабее другого, вы не можете определить , сколько сильнее или слабее, или сколько энергии сигнал.

После заголовка радиатора является заголовком 802.11. Поиск MAC-адресов см. В разделе 8 из the 802.11 standard. Обратите внимание, что во многих фреймах существует более двух MAC-адресов, поскольку узлы не обязательно отправляют пакеты непосредственно другим хостам, они могут отправлять их в точку доступа, которая перенаправляет пакет на целевой узел.

+0

Спасибо, Харрис. Это очень помогло мне. Я закончил с кодом. Похоже, что одна проблема возникает, некоторые биты MAC изменяются. Напр. MAC 80: AA: FC: 89: 03: BA отображается как 80: A8: FC: 89: 03: BA. Существуют ли какие-либо возможности получения ошибочных битов из пакетов Wi-Fi? – dfordevy

+0

«Есть ли возможности получить ошибочные биты от WiFi-пакетов?» Да, если вы снимаете в режиме монитора; в режиме монитора адаптер может предоставить хост-пакеты, которые были повреждены до их получения (возможно, вашей микроволновой печью :-)), даже если в результате повреждения CRC обнаруживает, что они повреждены , Заголовок radiotap может указывать на то, что у пакета был недопустимый CRC, и Wireshark может это сделать. –

+0

Я не пользуюсь Wireshark. Я разрабатываю свой собственный API. Как я могу сделать CRC? Есть ли какой-либо API libpcap, который предоставит мне только не ошибочные пакеты – dfordevy