libpcapはパケットまたは実際のパケットのコピーを取得しますか?
コピーとは、libpcapを使用するアプリケーションがパケットAを取得し、カーネルもパケットAを取得することを意味します。
実際には、 libpcapを使用するアプリケーションのみがパケットAを取得しますが、カーネルはそれを取得しませんでした。
libpcapはパケットまたは実際のパケットのコピーを取得しますか?
コピーとは、libpcapを使用するアプリケーションがパケットAを取得し、カーネルもパケットAを取得することを意味します。
実際には、 libpcapを使用するアプリケーションのみがパケットAを取得しますが、カーネルはそれを取得しませんでした。
カーネルはパケットを取得し、フィルターのリスト(たとえば、通常はIPsec、ファイアウォールなどのフィルターがあります)を通過し、これらのフィルターをすべて通過すると、パケットをアプリケーションに渡します。libpcapは別のフィルターですが、パケットを検査したり、変更したり、他のフィルターが行うことを行うのではなく、単にパケットを内部データベースに追加して処理します。
あなたがしたいことのために、最も簡単な解決策はファイアウォールを使用することです。
libpcap
あなたがやりたいことをすることはできません。pcapの目的は、システム内のすべてのパケットのコピーを透過的に受信することです。
システム内の既存のファイアウォールと相互運用する方法、または独自のフィルターをnetfilterシステムに追加する方法(Linuxの場合)を調査する必要があります。