Я использую сервер Tomcat с веб-приложением Java. Мне нужен общедоступный IP-адрес клиента из запроса. Но я не могу этого получить, я использовал методы request.getHeader("x-forwarded-for") request.getRemoteAddr(), но я получаю локальный IP-адрес клиентской машины.
Вопрос
Как получить общедоступный IP-адрес клиента в сервлете Java
- stackoverflow.com/questions/16163874 / Farhan S. 26.06.2014
Ответы
Ответ 1 · рейтинг 3 · Zarathustra
Вы запускаете свой сервер в локальной сети. Если это в дикой природе request.getRemoteAddr()должен делать свою работу.
Если вам действительно нужен даже в локальной сети ваш общедоступный IP-адрес, который может быть одинаковым в вашей локальной сети, поскольку он находится за маршрутизатором или чем-то, что использует NAT в моих глазах это не имеет особого смысла. Даже если вы хотите получить общедоступный IP-адрес, используйте такую службу, как ipecho: http://ipecho.net/plain.
Ответ 2 · Lonewolf
Если вы создаете веб-приложение в JSP и хотите отправить общедоступный IP-адрес клиента на сервер, вы можете использовать JavaScript с JSP для достижения этой цели.
//JavaScript dynamically created to obtain CLIENT MACHINE'S IP ADDRESS
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://www.telize.com/jsonip?callback=DisplayIP";
document.getElementsByTagName("head")[0].appendChild(script);
//below given function returns CLIENT MACHINE'S IP ADDRESS to the text box
function DisplayIP(response)
{
document.getElementById("clientip").value = response.ip;
}
IP-адрес будет храниться в clientip и передавать его в список серверов, которые вы отправляете в форму, и передавать ее сервлету.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Ява 8 | Практика двумерного массива 2 - Диагональные числа
- Базовый синтаксис и модификаторы доступа в Java
- 2 способа загрузки файлов в Amazon S3 в вашем проекте Spring Boot
- Быстрая обработка изображений с помощью собственного кода в Android
- Передача источника данных jdbc против передачи объекта Connection - от сервлета к классу java
- SendRedirect внутри GWT RPC не работает с jsp