¿Cómo se obtiene la dirección IP del cliente en un controlador Grails?

Tuve un código como este en 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

Se encargó de todas las formas posibles en que la IP podría aparecer. Por ejemplo, en mi máquina de desarrollo local, no hay proxy. Pero en el control de calidad y la producción, los poderes están ahí, y algunas veces proporcionan más de una dirección.

No necesito conocer la sintaxis de Groovy, solo qué métodos me dan el equivalente de las tres formas diferentes en que solicito la IP anterior.

Respuestas a la pregunta(2)

Su respuesta a la pregunta