Я использую libpcap (и winpcap для Windows) в приложении C для мониторинга сетевого трафика. Мне нужно различать загрузку и загрузку трафика на каждом сетевом адаптере, чтобы получить статистику скорости соединения, но выражения фильтра, используемые библиотекой, похоже, не очень упрощают (т. Е. Нет «входящих»/«исходящих» операторов).Измерение загрузки/загрузки с помощью libpcap
Один из подходов, который я рассмотрел, - это запросить IP-адрес каждого адаптера, а затем использовать фильтры, такие как src host 1.2.3.4
(для измерения загрузок) и dst host 1.2.3.4
(для измерения загрузки).
Мои вопросы:
Есть ли лучше/проще подход, чем один из приведенных выше (то, что позволит мне использовать такое же выражение фильтра для каждого адаптера будет хорошо)?
Если вышеприведенный подход - это способ, то есть ли вероятность того, что один адаптер может иметь более одного IP-адреса, связанного с ним? Причина, по которой я прошу, состоит в том, что структура pcap_addr
, содержащая данные адреса одного адаптера (в struct pcap_if
), имеет «следующий» член, предполагающий, что это возможно.
+1, мне нравится внешний вид библиотеки. –