2009-08-29 12 views
0

ファイアウォール/プロキシサーバのように動作する.netでWindowsアプリケーションを開発する予定です。しかし私にはどこから始めるべきかはわかりません。どんな助け?.netを使用したファイアウォール

基本的には、すべての送信HTTPトラフィックをコンピュータから監視したいと考えています。

答えて

3

私は間違っているかもしれませんが、何をする必要があるかの定義は何となく漠然としていますが、.NETには失望するのではないかと心配しています。あなたは管理されていないコード、afaikとして必要な機能の.NETラッピングはありません。

実際にはそれよりもはるかに悪いです:必要な機能のない「公式」のwin32ラッピングはありません。システムコールでいくつかの醜い/危険なマングリングをするか、あなたの代わりにシステムコールで醜い/危険なマングリングを行うサードパーティのツールを使用する必要があります(そして、私はシステムがアドレスあなたの機能を指すようにアドレスを変更してください)。

私は長い間、Windows用のiptablesのようなものを探していて、どれも見つからなかったしてきました。私はフリーソフトウェアと商用ソフトウェアの両方のコードを調べました(もちろん、すべて利用可能なソフトウェアですが、かなり長い時間を費やしていました)、それらはすべて汚いものを実行してフックを実装します。あなたが欲しい機能を持つレイヤードサービスプロバイダ(LSP)を挿入する必要があり、すべてのトラフィックを監視する

+1

これを行う方法で最高のexplainationはアンソニージョーンズとジムOhlund(アンソニーはMSの現在のWinsockのdevのリードである)による「Microsoft Windows用のネットワークプログラミング」です。それは絶版だが、あなたはまだコピーを見つけることができます。http://www.amazon.com/Network-Programming-Microsoft-Windows-Professional/dp/0735605602 サンプルコードは、あなたがあなた自身にハックすることができスケルトンLSPの実装を持っていますそれはほとんどの人がやっていることだからです。 –

0

名前空間System.Netはおそらく開始するには良い場所です。

0

。あなたはC言語で書いていますが、よく書かれたLSPでもガベージのように見えます。 winsockチームのメンバーがこれらのことについても不平を言うのを聞いたことがあります。私は、System.Netが実際にこれを行うことを可能にする何も持っていないことを知っています(私はSystem.Netを書くチームにいるので、これを信頼してください)。 System.Net.NetworkInformationを使用して、接続のオープン、使用中のアドレス、ネットワークインタフェースの列挙などのネットワーク情報をシステムに問い合わせることができますが、トラフィックを監視することはできません。

プロキシサーバーを作成したいだけなら、System.Netはおそらく他のものと同じくらい有用なはずですが、要求の読み取りと応答の作成以外のすべてのプロキシ機能を実装する必要があります。

関連する問題