return

ソケット渡しのテスト(その2)


watasi.html(watasi.class) の場合、
socket がファイヤーウォール内部からでは使えないのではないかと思って、
この watasi2.html(watasi2.class) では、
クライアント側でIPアドレスを取得して、
ブラウザに設定した proxy 経由でも渡せるように変えてみました。

なお、あなたが今ちゃんとプロキシサーバーを経由しているかどうかが不確かな場合は
こちら の 環境変数表示CGIで確認してください
(別ウインドウを開いて表示します)。

成功すれば、あなたの本来の接続元 IPアドレス(生IP)が下に表示されます。

 
 Java が使えません。
 
 Java 対応ブラウザを用い、かつ、Java を ON にしてご利用ください。 
 

うちの NN4 では、proxy の IPアドレスと生IPが表示されますが、
IE3 では、生IPの代わりに 127.0.0.1[localhost] が表示されてしまい、失敗でした。
IE4 もダメみたいですね。



表示しただけでは信じられないという方のために、
ここで取得した IPアドレス を当サーバー内にも記録するようにしておきました。

nama


解説

ここでの「ソケット渡し」の手順を解説します。 watasi.htmlの解説も参照して下さい。
  1. このページの<APPLET>タグにより、 サーバー上のJava Applet(watasi2.class)がクライアントの(あなたの)パソコンなどに 読み込まれて、そこで実行される。
  2. Java Appletは、InetAddress.getLocalHost().getAddress()によりクライアント上で ローカルアドレスを取得する。 (この際、NNでは実際の接続元IPアドレスが取得できますが、 IEでは127.0.0.1[localhost]しか取得できないようです。)
  3. Java Appletは、URLクラスを用いてサーバー上のCGI(watasi.cgi)を呼び出し、 取得したローカルアドレスを渡す。 (URLクラスを用いるので、Socketクラスによる場合と異なり ブラウザからのアクセスとなります。 つまり、ブラウザにプロキシサーバーが設定されていれば、 これを経由してアクセスすることになり、 これによってファイヤーウォール内部からでもアクセスが可能になると思われます。)
  4. サーバー上のCGIが、呼び出し時の環境変数REMOTE_ADDRとREMOTE_HOST (プロキシサーバー経由の場合はそのIPアドレス)と共に、Java Appletから送られて来た ローカルアドレスをサーバー上のファイル(nama.html)に記録する。

    (「ソケット渡し」はこれで完了なので、以降はおまけですが…)

  5. サーバー上のCGIが記録内容をクライアントのJava Appletに返し パソコン上などで表示する。
上の Java Applet のソース(watasi2.java)と CGIのソース(watasi.cgi)です。
なお、これらのソースファイルは、掲示板の方に何度か要望があってアップロードしたものにすぎません。
このため、watasi関係の設置方法や利用方法、使用方法などについての問い合わせは、申し訳ありませんが、一切お断りしております。