Адрес источника фильтра BPF == адрес передачи

Каков правильный фильтр BPF только для получения пакетов, в которых MAC-адрес источника равен MAC-адресу передачи?

Глядя на документацию, кажется, что поля должны быть доступны через wlan[21:12] или wlan.addr2, но я не могу заставить их работать.


person Zachary Alfakir    schedule 21.05.2018    source источник
comment
Вы ищете один конкретный адрес, который соответствует, или все пакеты, где они совпадают, независимо от адреса?   -  person Christopher Maynard    schedule 22.05.2018
comment
Все пакеты, в которых адрес передачи совпадает с адресом отправителя.   -  person Zachary Alfakir    schedule 22.05.2018


Ответы (1)


Согласно pcap-filter справочной странице, фильтры захвата для tshark или Wireshark don не поддерживает сравнение полей пакетов друг с другом.

Однако вы можете сделать это с помощью фильтра отображения (верхняя панель в Wireshark после начала захвата):

wlan.sa == wlan.ta

Чтобы проверить, равен ли флаг DS 0x1, с помощью фильтра захвата, вы можете сделать следующее:

wlan[1] & 3 = 1

Он извлекает второй байт заголовка wlan (wlan[1]), маскирует 2 младших бита (& 3) и сравнивает результат с 1.

person pchaigno    schedule 21.05.2018
comment
К сожалению, мне это нужно как фильтр захвата. После дополнительных исследований я обнаружил, что флаг DS = 0x1 означает, что SA == TA. Однако я все еще борюсь с использованием синтаксиса wlan[2:2] == 0x1. - person Zachary Alfakir; 21.05.2018
comment
О, классно. Я этого не знал. Я обновил свой ответ, чтобы показать, как проверить флаг DS. - person pchaigno; 22.05.2018
comment
Отличный ответ! Просто убедитесь, что вы поставили == для всех, кто копирует. - person Zachary Alfakir; 22.05.2018
comment
== не должно быть необходимым. - person pchaigno; 22.05.2018