Вы не можете на 100% надежно проверить это, но чтобы охватить большинство прокси, вы можете проверить наличие заголовка запроса X-Forwarded-For
.
if (request.getHeader("X-Forwarded-For") != null) {
// Client is likely using a proxy.
}
Для этого нет стандарта. Каждый прокси может иметь свой собственный набор дополнительных / пользовательских заголовков. Вы можете зарегистрировать полученные заголовки запроса и проверить, какие заголовки установлены определенными прокси, а затем соответствующим образом изменить код. Опять же, вы не можете надежно проверить это. Некоторые прокси могут вообще не иметь дополнительных заголовков. Вам нужно будет вести список IP-адресов «известных» прокси, чтобы вы могли проверить getRemoteAddr()
против него.
Не связано с конкретной проблемой, поскольку вы пометили это jsp , я бы только добавил, что написание кода Java внутри JSP - плохая практика. Обычно вы делаете это в обычном Java-классе, таком как сервлет или фильтр .