昨晩、ほんの2,3時間を使って、nettyでhttp proxyサーバを作ってみた。
その前日、パケット中継を作ってみた。といっても、ほとんど、nettyのサンプルにあるまま。。。
でも、これがすごーく簡単なので結構可能性を感じた。
パケット中継とは、たとえば127.0.0.1:8080にアクセスすると、強制的にそのパケットを192.168.1.100:80に飛ばすようなもの。
これができると、クライアントでいろいろとネットワークで制限されていても、
迂回していろいろなことができてしまう・・・・というもの。
(もちろん、迂回した先にも仕掛けは必要ですが・・・)
unixではstoneなんかがあるが、Windowsではまずそんな用途無いと思っていたが、
IEであるサイトにアクセスしなければいけないが、どうしてもプロキシ設定が変更できず、
でも、ある経路を通ってアクセスしなければならないので、
IEの制限をなくすために自分自身のポート10000から、ほかのIPへ接続をしてしまうという感じだ。
WindowsのAdministrator権限があれば、問題無いようなものも、権限がないにもかかわらずこういう用途をこなさなければならないので、
こんなこったことをすることになる。
とにかく、そこで簡単にできることがわかってきたのでそれを参考に、http proxyサーバに挑戦することにしてみた。
昔、Sharpメビウスというノートパソコンを使っているときに、「モバイルプロキシ」というツールがあって、
これがスイッチで、オンラインモード(自宅・オフィス)、オフラインモードのように切り替えて、
オンラインモードでは、自宅、もしくはオフィスでプロキシの設定を変更できたり、オフラインモードでは、
オンラインモードの時にためた強制ファイルキャッシュで、
コンテンツが見えるようにしてあったのだ。
あれは、なかなかつかいやすかったなー。と思うこともあり、いつかHTTPでのコンテンツキャッシュ機能付きプロキシサーバを作ろうかなと思っていた。
そのとき、ちょっと不都合があったのが、以前見たサイトがどこだったか忘れたが、
あの内容をまたみたいな-という時に全文検索などがあればいいのに・・・・とかとか。
やはり、自分で使うツールは自分で作る方がいろいろと都合がいいかなと。いろいろ拡張もできるし・・・・
で、ちょっと2,3時間でとりあえず、HTTPプロキシサーバだけでも作れるか試してみた。
結果を言えば、「失敗」した。
さすがに、2,3時間ではできなかった。
具体的に何ができなかったと言えば、Keep-Aliveの処理ができなかったのだ。
すべてのリクエストで接続をするようであればできた。
後で、探してみたら
LittleProxy
というサイトで、jboss nettyを使ったHTTP Proxyを公開していた。
どうも、まだFuture系の使い方がしっくりこないが、前にすすめそうだ。


