Как вы получаете IP-адрес клиента в контроллере Grails? - PullRequest
14 голосов
/ 26 января 2010

У меня был такой код в 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 выше.

Ответы [ 2 ]

37 голосов
/ 26 января 2010

Я думаю, это должно быть то, что вы хотите:

  • request.getRemoteAddr()
  • request.getHeader("X-Forwarded-For")
  • request.getHeader("Client-IP")
0 голосов
/ 26 сентября 2018
//action in controller 
def postentry (accountno) {
def fulldata = request.reader.text 
def remoteadd = request.getRemoteAddr()
println "ip request  "+remoteadd
...
}

результат --- запрос ip 0: 0: 0: 0: 0: 0: 0: 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...