Ответ 1
Я думаю, что это должно быть то, что вы хотите:
-
request.getRemoteAddr()
-
request.getHeader("X-Forwarded-For")
-
request.getHeader("Client-IP")
У меня был код вроде этого в Ruby:
@clientipaddress = request.env["HTTP_CLIENT_IP"]
if (@clientipaddress == nil)
@clientipaddress = request.env["HTTP_X_FORWARDED_FOR"]
end
if (@clientipaddress == nil)
@clientipaddress = request.env["REMOTE_ADDR"]
end
if (@clientipaddress != nil)
comma = @clientipaddress.index(",")
if (comma != nil && comma >= 0)
@clientipaddress = @clientipaddress[0, comma]
end
end
Он позаботился обо всех возможных путях, которые может показать IP. Например, на моей локальной машине разработки нет прокси. Но в QA и Production есть прокси-серверы, и иногда они предоставляют более одного адреса.
Мне не нужно знать синтаксис Groovy, только какие методы дают мне эквивалент трех разных способов, которые я запрашиваю для IP выше.
Я думаю, что это должно быть то, что вы хотите:
request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")