tuve código como este en Ruby:¿Cómo se obtiene la dirección IP del cliente en un controlador Grails?
@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 hizo cargo de todas las formas posibles que la IP podría aparecer. Por ejemplo, en mi máquina de desarrollo local, no hay proxy. Pero en control de calidad y producción, los proxies están ahí y, a veces, proporcionan más de una dirección.
No necesito saber la sintaxis de Groovy, simplemente qué métodos me dan el equivalente a las tres formas diferentes en que pido la IP anterior.
Gracias por la rápida respuesta. – Andrew
Intenté esto pero obtengo: "No such such: request" ha gastado 1h googlin en este error, no tuve suerte. ¿Alguien sabe como resolver esto? –
¿Estás haciendo esto dentro del controlador? Esta es una propiedad inyectada y debería estar allí. – Neoryder