Я знаю, что перед захватом пакетов я могу выбрать определенный интерфейс.
Интересно, есть ли какой-нибудь фильтр, позволяющий различать разные интерфейсы после захвата пакетов?
То есть, вначале я перехватываю пакеты всех интерфейсов.
После этого я могу использовать «какой-нибудь фильтр» для разных интерфейсов.
Кто-нибудь знает об этом?
решение1
Режим захвата "Linux cooking" никак не различает пакеты с разных интерфейсов. Вы можете фильтровать результаты только по IP-адресу.
решение2
Начиная с Wireshark 1.8 и при использовании формата захвата pcap-ng вы можете использовать frame.interface_id
. Это номер интерфейса, с которого был захвачен кадр. Чтобы сопоставить номер с фактическим интерфейсом, см. окно Статистика > Сводка. Первый интерфейс в таблице имеет номер 0, а остальные — следующие.
Я протестировал это на Ubuntu 12.04.3 (ядро 3.2.0-57), Wireshark 1.10.3.
Для получения дополнительной информации см.:
решение3
Вы можете немного отфильтровать, когда используете Linux cooking capture, используя фильтр SLL. Взгляните наhttp://wiki.wireshark.org/SLLи найдите параметры в окне «Выражение фильтра».
Хотя вы не можете точно отфильтровать каждый интерфейс, вы можете, например, выбрать тип интерфейса с помощью «sll.hatype == 1» для интерфейсов Ethernet или «sll.hatype == 512» для интерфейсов ppp (см. значения в заголовочном файле if_arp.h).