在Grails中查找会话用户的公共IP地址

在Grails中查找会话用户的公共IP地址,grails,groovy,get,request,ip-address,Grails,Groovy,Get,Request,Ip Address,我想请求grails中会话用户的远程地址。我在这里发现了一个描述问题()的问题,答案确实有效。我只使用request.getRemoteAddr()并在本地主机中接收到0:0:0:0:0:0:1。但是,我必须做什么才能看到用户的真实IP地址 在我发现的前一个问题中,有这样一句话:“当从其他计算机查看站点时,请尝试查看request.remoteAddr的输出”。我真的不知道这意味着什么,我需要你的帮助。我只能在自己的浏览器中加载服务器,并使用“localhost:8080/…” 请告诉我如何以及

我想请求grails中会话用户的远程地址。我在这里发现了一个描述问题()的问题,答案确实有效。我只使用request.getRemoteAddr()并在本地主机中接收到0:0:0:0:0:0:1。但是,我必须做什么才能看到用户的真实IP地址

在我发现的前一个问题中,有这样一句话:“当从其他计算机查看站点时,请尝试查看request.remoteAddr的输出”。我真的不知道这意味着什么,我需要你的帮助。我只能在自己的浏览器中加载服务器,并使用“localhost:8080/…”
请告诉我如何以及在哪里获得正确的请求。谢谢

这是你能得到的最好的了

0:0:0:0:0:0:0:1
这是你的本地地址。此外,由于动态寻址和代理服务器,这不能保证对用户是唯一的

“查看站点时,请尝试查看request.remoteAddr的输出 从另一台计算机”

意味着您需要从局域网中的另一台计算机连接到在您的计算机上运行的应用程序。
如果LAN中有另一台机器,则需要找到本地网络IP地址(使用ipconfig),并从另一台机器连接到此地址。例如,如果您的IP为
192.168.0.2
,请连接到
http://192.168.0.2:8080

正如tim_yates所提到的,由于动态寻址和代理服务器的原因,request.getRemoteAddr()可能并不总是返回正确的地址。但是,您可以从各种HTTP头中查找原始地址,例如:
HTTP\u CLIENT\u IP、HTTP\u X\u FORWARDED\u FOR、HTTP\u X\u FORWARDED

看看这个问题的答案,它提供了关于这个主题的更多信息