Я бы проверил, является ли запрос HTTP-запросом, если это так, используйте метод, предложенный в другом вопросе.Иначе я бы слепо доверял методу getRemoteAddr()
.
if (request instanceof HTTPServletRequest) {
HTTPServletRequest httpRequest = (HTTPServletRequest) request;
// read X-Forwarded-For header, etc. etc.
} else {
ip = request.getRemoteAddr();
}