C ++の優れたパケットスニファークラスを提案できる人はいますか? C ++プログラムで使用できる簡単に挿入できるクラスを探していますが、複雑なことは何もありません。
3 に答える
プロジェクトにクラスを挿入するだけでは、ネットワーク トラフィックを傍受することはできません。Will Dean が指摘したように、パケット キャプチャ機能にはカーネル モードのサポートが必要です。
最新の Unix ライクなディストリビューションのほとんどには、すぐに使える libpcap が含まれています。その場合、次の非常に単純な例を見ることができます。
Windows を使用している場合、 WinPcapプログラミングは libpcap プログラミングと非常に似ていますが (Win32 への libpcap ポートであるため、当然のことです) 、多かれ少なかれ自分で作業する必要があります。SDK は次の場所にあります: http://www .winpcap.org/devel.htm
いずれにせよ、オペレーティング システムに関係なく、実際にキャプチャを実行するには root / 管理者アクセスが必要です。もちろん、ライブラリを使用して事前にキャプチャされたデータを再生または分析するだけであれば、特別な権限は必要ありません。
これは言語ではなくプラットフォームであるため、プラットフォームについて何か言う必要があります。
しかし、一般的なものを使用していると仮定して、pcap または winpcap を調べてください。
Microsoft Network Monitor には、パケット キャプチャと分析 API があります。基本的な情報については、netmon ブログを参照してください。