Подтвердить что ты не робот

Использование request.getRemoteAddr() возвращает 0: 0: 0: 0: 0: 0: 0: 1

Я пытаюсь напечатать IP-адрес зарегистрированного пользователя в моем веб-приложении. Если пользователь подключается с другого ПК (который находится в той же сети, что и веб-приложение работает на моем компьютере) с использованием IP-адреса 192.168.10.120:8080/WebApplication, код request.getRemoteAddr() или request.getLocalAddr()) возвращает свой IP-адрес. Когда я вхожу в систему с моего компьютера, который запускает веб-приложение, я получаю этот IP-адрес 0: 0: 0: 0: 0: 0: 0: 1.

Почему? И какая разница между этими командами (что я должен использовать?). Большое вам спасибо!

4b9b3361

Ответ 1

В вашем случае, когда вы пытаетесь получить к нему доступ на своем локальном компьютере, он вернет это значение. Но пусть один из ваших друзей получит доступ к нему, и вы получите ожидаемый результат с помощью getRemoteAddr

Из javadoc:

getRemoteAddr - возвращает IP-адрес клиента или последнего прокси-сервера, отправившего запрос

getLocalAddr - возвращает IP-адрес интерфейса, на который был получен запрос.

Ответ 2

Когда мы переходим к IPv6 с IPv4, они меняют адрес loopback (localhost) на 0:0:0:0:0:0:0:1 из 127.0.0.1, поэтому вы получаете этот адрес.

Что касается функций:

  • getRemoteAddr() возвращает клиентам IP

  • getLocalAddr() возвращает IP-адрес сервера, на котором установлено приложение. работает на

Ответ 3

getRemoteAddr() решает вашу цель, но если клиент находится за любым прокси-сервером, тогда вы получите IP-адрес прокси-сервера

Возвращает IP-адрес клиента или последний прокси-сервер который отправил запрос.

getLocalAddr() возвращает IP-адрес сервера, на котором запущено приложение.