2009-08-11 9 views
5

私は自分のWebページにアクセスしているクライアントのIPアドレスを知りたいと思います。 JSPページの(JSP用の)WebクライアントのIPアドレスを特定するにはどうすればよいですか?

内容:

<% 
out.print(request.getRemoteAddr() + "<br>"); 
out.print(request.getRemoteHost()); 
%> 

出力:

0:0:0:0:0:0:0:1 
0:0:0:0:0:0:0:1 
+0

JEEを使用していますか? –

+0

はい、J2EEを使用しています – wokena

答えて

6
<% 
    out.print(request.getRemoteAddr()); 
    out. print(request.getRemoteHost()); 
%> 
  • request.getRemoteAddr()リターンIPどこ アクセスJSPページからマシンの アドレス。
  • request.getRemoteHost()は、 のjspページにアクセスするホストの というホスト名を返します。サーバー自体から にアクセスすると、サーバー名が に戻ります。

クライアントがプロキシの背後にある場合は、上記のは、あなたが彼らの背後にあるプロキシのIPを取得するように有用ではない、代わりにしてみてください:

<% 
    out.print(request.getHeader("x-forwarded-for")); 
%> 
+2

+1 request.getHeader( "x-forwarded-for") – firstthumb

+0

x-forwarded-forは常に動作しますか?また、クライアントがネットワークアドレス変換を行うデバイスの反対側にある場合は、それが役に立たないと思います。 –

+1

これは非RFC標準ヘッダー( "x-"接頭辞)であることに注意してください。 – rodrigoap

6

はあなたの方法は正しいです。私は、あなたがlocalhost上でそれにアクセスしているので、ループバックインターフェースに当たっていると仮定します。表示されている番号は、ループバックインターフェイスのIPv6 IPアドレスです。

別のマシンから試してみてください。

+0

これは私が必要とした情報です。 –

関連する問題