Ip da maquina ou do celular

Uso Spring.

@Autowired
protected HttpServletRequest request;

Estou tentando pegar o ip da maquina do usuário que está usando. Mas só vem o ip do servidor. Tentei algumas, mas nada.

String ip = InetAddress.getLocalHost().getHostAddress();
			if (ip == null) {
				ip = request.getHeader("x-forwarded-for");
				if (ip == null) {
					ip = request.getHeader("X_FORWARDED_FOR");
					if (ip == null) {
						ip = request.getRemoteAddr();
					}
				}
			}

Se tem algum overhead no meio como proxy, o correto vai ser pegar o valor do header ‘x-forwarded-for’ da requisição, como tá aí em um dos ifs. Caso contrário vai pegar o IP do proxy.

Se funcionar, esse retira esse bando de ifs e deixa só o que for funcionar pro seu caso.

2 curtidas

Vou testar.