IP real do cliente

Pessoal,

Estou em busca de obter o IP real do cliente em uma aplicação JSP, visto que ele pode estar atrás de um router e request.getRemoteHost() não resolve (ip local).

Como já foi discutido nesse tópico de uns anos atrás:http://www.guj.com.br/posts/list/25199.java
Saiu uma opção interessante para pingar um site e pegar o IP, só que… como o JSP está no server… a classe acabará pingando do servidor e o IP será sempre o IP do servidor (a menos que seja uma applet)… :frowning:

Alguém tem uma boa solução?

Valeu

Is simple my friend.

Coloca um script na página.

<SCRIPT>
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
document.writeln(ipStr.substring(ipStr.indexOf("/")+1));
</SCRIPT>

Em vez de document.writeln…

Você manda o IP que foi pego via ajax para o Servidor.
Faça um teste, salve esse como em um arquivo “teste.html” e abra no navegador, você irá ver que funciona.
Caso você não queira usar o ajax, você salva esse endereço em um hidden field e manda via post.

Peace of cake. Next!!

:smiley:

jtsato, isso nao eh lah muito boa ideia. Usar qualquer coisa dos pacotes do Java no JavaScript inicia uma JVM so pra isso - e iniciar uma JVM na maquina do cliente so pra rodar 3 linhas de JavaScript me parece meio suspeito. :wink:

É… e tb tem outra… Javascript fica na fonte do html, daria até pra “esconder” em um js, mas sei lah… :roll:

1-É melhor que um applet.
2-É melhor rodar 3 linhas do que 100.
3-Pode ser feito somente no login afinal você não vai pegar o IP do cliente a cada página. Você pode guardar na sessão.
4-Você precisa de uma forma de pegar o IP direto no cliente, e se você não pegar via código vai pegar como ?

“Por favor informe seu login, senha e endereço IP para continuar.” :lol:

5-Afinal de contas, você navega o dia todo na internet, provavelmente alguma página tem um script desses e você nem percebe.

ainda assim desnecessario :wink:
veja se em seu servidor esta habilitado o SSI ( http://www.bignosebird.com/ssi.shtml )

se tiver batata, sua pagina soh precisa conter uma string como

var ip = '<!--#echo var="REMOTE_ADDR"-->';

e ser salva como .shtml mais facil rapido e sem a besteira de iniciar uma jvm a toa :wink: