5

アプリケーションを介してすべてのネットワークトラフィック(HTTPだけでなく)をルーティングするアプリケーションを構築したいと思います。基本的に、私が必要としているのは、アプリケーションに与えられるすべてのトラフィックです(実際のターゲットに到達することはなく、アプリケーションがこれを処理する必要があります)。これはサーバーに転送されます。同じことが入力にも当てはまりますが、逆になります(サーバー->アプリケーション->回答が必要なプログラム)。アプリケーションの作成を容易にするライブラリ(または同様のもの)はありますか?PythonやJavaで使えるものを探していますが、本当に必要な場合は別の言語を学ぶことができます。

4

4 に答える 4

4

使用したいのはパケットキャプチャライブラリです。PythonまたはJavaでepcapまたはその実装またはバインディングを使用できます。

ただし、これらのようなものは通常、理想的にはCを使用して低レベルで実装されます。これがチュートリアルチュートリアルです。

編集:あなたのコメントに照らして、あなたは間違いなくnetfilterフックを見てみたいです

あなたがそれにいる間、あなたはまたnetfilterフックを見たいかもしれません

于 2012-01-10T18:30:57.257 に答える
1

Jpcapをご覧ください。

于 2012-01-10T18:17:32.483 に答える
1

TCPトラフィックのみをルーティングする場合は、実際にはスレッドとソケットを使用するのは簡単です。到達したいサーバーごとに異なるポートでリッスンする必要があります。JavaまたはPythonのいずれかで、リッスンするすべてのポートに対して「ソケット」を作成する必要があります。

サーバーへの新しい接続を作成し、その接続を処理するために2つの新しいスレッドを作成する新しい接続ごとに、1つのスレッドがクライアントからすべてを読み取り、サーバーに送信します。もう1つは、サーバーからすべてを読み取り、それをクライアントに送信することです。接続のいずれかの端が接続を閉じると、もう一方の端を閉じて両方のスレッドを終了します。

于 2012-01-10T18:35:03.887 に答える
0

Linuxでこれを行う場合は、TUN / TAPデバイスの使用を検討する必要があります。これは、カスタム処理のためにネットワークトラフィックを傍受するための非常に便利なツールです。慣れていない場合の基本的なチュートリアルは次の とおりですhttp://backreference.org/2010/03/26/tuntap-interface-tutorial/

于 2012-01-10T19:25:26.550 に答える