0

libpcap を使用してパケットをキャプチャするアプリケーションを作成しました。しかし、アプリケーションは数パケットしかキャプチャできず、トラフィックは数 kbps 程度です。ただし、tcpdump を開くと、キャプチャされたトラフィックは 10Mbps を超えます。tcpdump を閉じると、キャプチャされたトラフィックは再び数 kbps に落ちました。

理由を知っている人はいますか?どうもありがとうございました。

4

1 に答える 1

0

を呼び出している場合pcap_open_live()、''promisc'' 引数として 0 を渡している可能性があります。pcap_create()とを呼び出している場合pcap_activate()、おそらくpcap_set_promisc()それらの呼び出しの間に呼び出しを行っていません (またはpcap_set_promisc()、0 の ''promisc'' 引数を渡しています)。

つまり、おそらく無差別モードをオンにしていないため、マシンはネットワーク上の他のトラフィックではなく、マシンとの間のトラフィックのみをキャプチャしています。デフォルトでは、tcpdump はプロミスキャス モードをオンにします。そのため、実行中は、キャプチャしているアダプタ (おそらく tcpdump がキャプチャしているアダプタと同じアダプタ) がプロミスキャス モードになり、次のように表示されます。ネットワーク上の他のトラフィック。

于 2013-07-17T19:26:45.223 に答える