いま、HTMLファイルを開いた時に開いたパソコンのプライベートアドレスを
取得しようとがんばってます。
このHTMLファイルは社内のLANだけで使う予定です。
そこでJAVAアプレットを使ってプライベートアドレスをとれないかと試行錯誤してます。
普通のグローバルアドレスは取得できるのですがプライベートアドレスとなると・・・
見当がつきません。
サーブレット?(servlet)を使うと取得できるようなのですが
サンプルコードを見ますとコードの中でHTMLのコードも含まれていて
私の第1印象として、これはHTMLも一緒に作るものなのか?と思っています。
コードの1部↓
out.println(<body>);
out.println(<h3>Request Information Example</h3>);
out.println(Method: + request.getMethod());
JAVA単体でかまわないのでプライベートアドレスを取得する方法は無いでしょうか?
出来ればCGIなどは使わない方法がいいのですが・・・。
HTMLファイルを開いたという表現があいまいですが
WEBサーバー上にあるHTMLファイルをブラウザーを
用いて閲覧したとしてみます。
方法としては、
1.埋め込まれたアプレットよりクライアント情報を取得する。
2.サーブレットを用いてセッション情報からクライアント情報
を取得する。
3.Applet→Servlet通信を行ってソケットの接続情報よりアドレス
を取得する。
の方法が考えられると思います。
1.の方法の場合
InetAddress#getLocalHost()#getHostAddress();
で取得することができますが、最近のIEはセキュリティー
の制限のためループバックアドレス(127.0.0.1)
を戻してくるのでクライアント環境に左右されてしまいます。
2.の方法は、プロキシを通していると
プロキシのアドレスになってしまいます。
社内LAN等の限られた環境内では可能ではないかと思います。
3.の方法
URL url = getCodeBase();
Socket socket = new Socket(url#getHost(), 80);
socket#getLocalAddress()#getHostAddress();
とかですが非常に面倒なシステムを組むことになりそうです。
IPアドレスの取得は難しいですね。
半分あきらめかけです・・・