Чтобы узнать, какая клиентская машина отправляет запросы сервлету, используй класс ServletRequest, который предоставляет специальные методы для получения информации о клиенте.
Два главных подхода:
getRemoteAddr() — возвращает IP-адрес клиентской машиныgetRemoteHost() — возвращает имя хоста клиентской машиныServletRequest request = // получено из doGet/doPost
String clientIP = request.getRemoteAddr();
String clientHost = request.getRemoteHost();
getRemoteAddr() обычно надёжнее, потому что всегда возвращает IP-адрес, тогда как getRemoteHost() может выполнить обратный DNS-запросServletRequest автоматически передаётся параметром в методы сервлета: doGet() и doPost()X-Forwarded-ForМетод getRemoteAddr() всегда возвращает IP-адрес клиентской машины, в то время как getRemoteHost() может выполнить обратный DNS-lookup, который может быть медленнее или вообще не удасться.
Новый — ещё не проверен сообществом
Вы