12
我曾在Ruby中这样的代码:如何在Grails控制器中获取客户端IP地址?
@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可能会出现可能的方式照顾。例如,在我的本地开发机器上,没有代理。但是在质量保证和生产中,代理在那里,有时他们提供多个地址。
我不需要知道Groovy语法,只是哪些方法让我相当于我要求上述IP的三种不同方式。
感谢您的快速反应。 – Andrew 2010-01-26 17:59:56
我试过这个,但得到:“没有这样的属性:请求”花了1h googlin这个错误,没有运气。任何人都知道如何解决此问题? – 2014-05-20 09:40:42
你在控制器内部做这个吗?这是一个注入的财产,应该在那里。 – Neoryder 2014-09-02 09:35:33