Capturar IP do cliente  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
efcjunior
Virtual Machine Man

Membro desde: 14/12/2006 20:38:28
Mensagens: 520
Offline

Bom dia Pessoal.

Estou tentando capturar o IP real da por meio do método: request.getRemoteAddr() mas, ele obtém o endereço do gateway. Em alguns fóruns que pesquisei informaram que isso pode ser por causa do proxy que tenho na minha maquina.

Agradeço ajuda!

Sun Certified Java Programmer 98%
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

Para sua máquina, o IP real remoto é mesmo o gateway.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
efcjunior
Virtual Machine Man

Membro desde: 14/12/2006 20:38:28
Mensagens: 520
Offline

É o seguinte. O sistema será utilizado dentro de uma rede. Então se duas maquinas desta rede acessar o meu sistema, automaticamente o sistema reconhecerá as duas com o mesmo endereço.


ExemplO:

Maquina 1

Sufixo DNS específico de conexão . :
Endereço IP . . . . . . . . . . . . : 172.25.1.138
Máscara de sub-rede . . . . . . . . : 255.255.254.0
Gateway padrão. . . . . . . . . . . : 10.10.1.1


Maquina 2

Sufixo DNS específico de conexão . :
Endereço IP . . . . . . . . . . . . : 172.25.1.137
Máscara de sub-rede . . . . . . . . : 255.255.254.0
Gateway padrão. . . . . . . . . . . : 10.10.1.1


Ou seja, o log do meu sistema gravará para as duas maquinas o ip: 10.10.1.1 e não o ip real daquela maquina na rede.


Sun Certified Java Programmer 98%
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Você pode tentar o header X-Forwarded-For, mas você vai ter de tomar o seguinte cuidado: suponha que seu cliente também esteja atrás de um proxy ou um roteador.

Em casa, por exemplo, o endereço IP da minha máquina é algo parecido com 192.168.1.___ e o endereço do roteador é o que o provedor de Internet me fornece quando me conecto a ele (algo como 182.186.___.___ ou coisa parecida).

Se você usar X-Forwarded-For (que normalmente é um header acrescentado por proxy servers, mas não por roteadores), não sei se ele vai apontar o endereço 192.168.1.___ (que acho que é inútil para você - já que várias casas têm esse endereço IP "local" que não serve para absolutamente nada), 182.186.___.___ (que é um pouco mais útil) ou simplesmente não vai aparecer para você.
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

Ainda assim, esse header não é obrigatoriamente anexado a mensagem. Por isso o thingol falou em tentativa.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
efcjunior
Virtual Machine Man

Membro desde: 14/12/2006 20:38:28
Mensagens: 520
Offline

Mas se o sistema é interno como eu faria para identificar qual maquina da minha rede está acessando aplicação sendo todas configuradas com o mesmo gateway? Perdoa-me se a minha pergunta foi redundante mas estou tentando dificuldade de compreender essa situação.

Sun Certified Java Programmer 98%
efcjunior
Virtual Machine Man

Membro desde: 14/12/2006 20:38:28
Mensagens: 520
Offline

Mas seguindo a orientação obtive um "null"


Sun Certified Java Programmer 98%
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

É assim: você pode tentar escrever uma página bem boba que mostre TODOS os headers HTTP que estão vindo do request do browser do usuário. (Algo como o que está mostrado nesta página aqui:

http://www.cafesoft.com/products/cams/docs/program/WebappProgramming.html

Aí você pode ir até o browser de cada máquina da sua rede que você está tendo problemas, e veja se existe algum header que está imprimindo resultados diferentes para cada cliente. Pode ser, por exemplo, X-Forwarded-For ou outro. É questão de listar os headers e ver se há algum que presta.
[WWW]
fabiodresch
Smalltalk
[Avatar]

Membro desde: 04/08/2009 13:09:53
Mensagens: 1
Localização: Francisco Beltrão - PR
Offline

teste
[Email] [MSN]
efcjunior
Virtual Machine Man

Membro desde: 14/12/2006 20:38:28
Mensagens: 520
Offline

thingol wrote:É assim: você pode tentar escrever uma página bem boba que mostre TODOS os headers HTTP que estão vindo do request do browser do usuário. (Algo como o que está mostrado nesta página aqui:

http://www.cafesoft.com/products/cams/docs/program/WebappProgramming.html

Aí você pode ir até o browser de cada máquina da sua rede que você está tendo problemas, e veja se existe algum header que está imprimindo resultados diferentes para cada cliente. Pode ser, por exemplo, X-Forwarded-For ou outro. É questão de listar os headers e ver se há algum que presta.


Cara...

Como eu faria para testar esses exmplos deste site. Eu criei um novo projeto no eclipse e em seguida criei uma pagina jsp e coloquei o primeiro exemplo. Rodei o servidor, chamei a pagina mas ficou em branco.

Me dê algumas dicas por gentileza.

thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Aí é com você. Pegue seu site mesmo que está funcionando, e crie uma página a mais com o código que você pode pegar do tal exemplo (você entendeu o exemplo, para começar?) Não precisa fazer um site "vazio".

Depois você apaga a página, que é só para testes. É até melhor você fazer na sua própria aplicação mesmo, em vez de criar uma aplicação vazia, que vai dar um trabalhão daqueles para acabar funcionando.
[WWW]
djemacao
GUJ Master

Membro desde: 04/06/2007 17:47:24
Mensagens: 1030
Offline

Tem certeza que request.getHeader("x-forwarded-for") não funciona pra ti?
Ele não pega o valor do IP interno. Nunca pegou comigo. Sempre é o IP externo, aquele que serve pra nós.

"Quanto mais aprendo mais tenho consciência que nada sei."
diogo soares
Virtual Machine Man

Membro desde: 17/06/2008 12:46:19
Mensagens: 585
Localização: RS
Offline

Bom dia Galera,

Tenho um comando que pega o Ip da máquina cliente, porém tem algumas máquinas que ele não está pegando e na minha máquina localhost também não pega, alguém pode me dar uma mão?


Uso o tomcat 7

Sigam-me no Twitter.: @diogoprosoft
Meu Skype.: diogoprosoft
Meu msn.: diogoprosoft@gmail.com
Meu Gtalk.: diogoprosoft@gmail.com
Meu Facebook.: diogoprosoft@gmail.com
[Email]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

diogo soares wrote:Bom dia Galera,

Tenho um comando que pega o Ip da máquina cliente, porém tem algumas máquinas que ele não está pegando e na minha máquina localhost também não pega, alguém pode me dar uma mão?


Uso o tomcat 7


Você chegou a ler o tópico? Como já explicado, esse campo é opcional na mensagem IP. Se algumas máquinas não enviam, não há nada que você possa fazer.
É errado depender dele.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
LaercioPontin
Thread.start()
[Avatar]

Membro desde: 19/10/2011 15:06:21
Mensagens: 46
Offline

Alguém achou alguma alternativa?
Estou precisando dessa funcionalidade!

Mojarra JSF 2.0.3 | PrimeFaces 3.0.M4 | Apache Tomcat/7.0.5
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team