我想请求grails中 session 用户的远程地址。我在这里发现了一个问题,它描述了问题( Grails find public IP address of the session user ),并且答案确实有效。我只使用 request.getRemoteAddr() 并在本地主机中收到 0:0:0:0:0:0:0:1。但是,我必须做什么才能看到用户的真实 IP 地址?
在我发现的上一个问题中,有人说“从另一台计算机查看站点时尝试查看 request.remoteAddr 的输出”。我真的不知道这意味着什么,我需要你的帮助。我只能在自己的浏览器中加载服务器,并且使用“localhost:8080/...” 请告诉我如何以及在哪里获得正确的请求。谢谢!!!
最佳答案
"Try looking at the output of request.remoteAddr when viewing the site from a different computer"
意味着您需要从 LAN 中的另一台计算机连接到您的计算机上运行的应用程序。
如果您的 LAN 中有另一台计算机,您将需要找到您的本地网络 IP 地址(使用 ipconfig)并从另一台计算机连接到该地址。例如,如果您的 IP 是 192.168.0.2
,请连接到 http://192.168.0.2:8080
正如 tim_yates 提到的,由于动态寻址和代理服务器的原因,request.getRemoteAddr()
可能并不总是返回正确的地址。不过,您可能从各种 HTTP header 中找到原始地址,例如:HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、HTTP_X_FORWARDED
看看这个问题的答案 question其中提供了有关此主题的更多信息。
关于grails - 在 Grails 中查找 session 用户的公共(public) IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371692/