Я использую libpcap для захвата всех пакетов на конкретном порту. Но мне нужно разделить и четко знать, какие пакеты отправляет мое устройство, а какие - получает.
На самом деле я использую pcap_close()
для захвата пакетов, и это работает хорошо; но struct pcap_pkthdr не содержит никакой информации, если пакет получен или отправлен.
У меня есть несколько вариантов, но я думаю, что все они не совсем хороши:
- Я мог бы попытаться получить свой собственный IP-адрес и сравнить его с IP-адресом внутри
IP Header
, но всегда сложно проверить мой IP-адрес и сравнить его ...
- Я мог бы сделать два фильтра pcap с одним
src host
и другим dest host
. Но было бы бессмысленно иметь два таких фильтра, и я не знаю, как захватить с двумя отдельными фильтрами.
Итак, я не прав? Если нет, существует ли эффективный способ отделения полученных от отправленных пакетов?
Спасибо!