Получает ли libpcap копию пакета? - PullRequest
2 голосов
/ 12 мая 2010

Получает ли libpcap копию пакета или фактический пакет?

Под копией я имею в виду: приложение, использующее libpcap, получает пакет A, а ядро ​​также получает пакет A.

Фактически я имею в виду: только приложение, использующее libpcap, получает пакет A, но ядро ​​его не получило.

Ответы [ 2 ]

3 голосов
/ 12 мая 2010

libpcap не позволит вам делать то, что вы хотите. Целью pcap является прозрачное получение копии каждого пакета в системе.

Вам следует выяснить, как взаимодействовать с существующим в вашей системе брандмауэром или как добавить свои собственные фильтры в систему netfilter (в Linux)

3 голосов
/ 12 мая 2010

Ядро получит пакет, затем пропустит его через список фильтров (например, обычно есть фильтр для IPsec, брандмауэр и т. Д.), И после прохождения всех этих фильтров он передает пакет в приложение. libpcap - это еще один фильтр, но он просто добавляет пакет во внутреннюю базу данных для обработки, а не проверяет пакет, изменяет или делает все остальное, что будут делать другие фильтры.

Для того, что вы хотите сделать, самое простое решение - использовать брандмауэр.

...