Как определить IP-адрес веб-клиента (для JSP)? - PullRequest
5 голосов
/ 11 августа 2009

Я хотел бы узнать IP-адрес клиента, который посещает мои веб-страницы.

Содержание страницы JSP:

<% 
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

Ответы [ 2 ]

6 голосов
/ 14 сентября 2009

Ваши методы верны. Я предполагаю, что вы обращаетесь к нему на локальном хосте и, следовательно, используете интерфейс обратной связи. Цифры, которые вы видите, являются IPv6-адресами вашего интерфейса обратной связи.

Попытка ударить его с другой машины.

6 голосов
/ 11 августа 2009
<% 
   out.print( request.getRemoteAddr() ); 
   out. print( request.getRemoteHost() ); 
%>
  • request.getRemoteAddr() возврат ip адрес машины, с которой вы доступ к странице JSP.
  • request.getRemoteHost() возвращает имя хоста, с которого вы доступ к странице JSP. Если вы получаете доступ это с самого сервера, он вернется имя сервера.

Если клиент находится за прокси-сервером, приведенные выше данные бесполезны, так как вы получите IP-адрес прокси-сервера, за которым они стоят, вместо этого попробуйте:

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