2009-08-11 15 views
5

Chciałbym dowiedzieć się, adres IP klienta, który odwiedza moje strony internetowe.Jak określić adres IP klienta WWW (dla strony JSP)?

Zawartość strony JSP:

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

wyjściowa:

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

Czy używasz JEE? –

+0

Tak, używam J2EE – wokena

Odpowiedz

6
<% 
    out.print(request.getRemoteAddr()); 
    out. print(request.getRemoteHost()); 
%> 
  • request.getRemoteAddr() powrót ip adres urządzenia z którego dostęp do strony JSP.
  • request.getRemoteHost() zwraca nazwę hosta , z którego uzyskujesz dostęp do strony jsp. Jeśli uzyskasz dostęp do z samego serwera, zwróci ona nazwę serwera .

Jeśli klient jest za serwerem proxy, powyższe nie są użyteczne jako dostaniesz IP proxy są one z tyłu, zamiast próbować:

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

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

+0

Czy x-forwarded-for zawsze działa? Ponadto, nie sądzę, że pomoże to, jeśli klient znajduje się po drugiej stronie urządzenia, które wykonuje translację adresów sieciowych. –

+1

Należy pamiętać, że jest to standardowy nagłówek inny niż RFC (przedrostek "x-"). – rodrigoap

6

Twoje metody są prawidłowe. Zakładam, że uzyskujesz dostęp do niego na localhost i tym samym trafiasz w interfejs pętli zwrotnej. Liczby, które widzisz, to adresy IPv6 twojego interfejsu pętli zwrotnej.

Próbujesz trafić z innej maszyny.

+0

To jest dokładnie ta informacja, której potrzebowałem, dzięki. –