我在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
Run Code Online (Sandbox Code Playgroud)
它处理了知识产权可能出现的所有可能方式.例如,在我的本地开发机器上,没有代理.但在QA和Production中,代理存在,有时它们提供多个地址.
我不需要知道Groovy语法,只是哪种方法让我相当于我要求上面的IP的三种不同方式.
我正在做grails的小项目.我正在尝试在这个项目中添加网络概念,请您指导如何处理它
需求:-
我在我的localhost(http:// localhost:8080/xyz)中运行我的项目.如果另一个人使用相同的localhost访问项目(http://192.168.xx:8080/xyz).通过使用网络概念我应该获得使用相同localhost(IP地址)的特定用户IP地址的详细信息.
目前我正在使用此查询来获取我的系统的IP地址
${request.getScheme()}:${InetAddress.getLocalHost().getHostAddress()}
Run Code Online (Sandbox Code Playgroud)
但我想要在网络中使用这个项目的特定用户的IP地址.
请指导我解决这个问题.