grails - 在 Grails 中查找 session 用户的公共(public) IP 地址

标签 grails groovy get request ip-address

我想请求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/

相关文章:

java - 如何在 Gmaven 中转义 Java 泛型?

javascript - 是否可以将 GET 响应数据传递回同一工厂?

javascript - localhost 不工作的简单 angularJS GET 函数

php - 如何从 zend 框架获取 $_GET 对象

mysql - Grails GORM 如何在我的应用程序中加载现有的远程数据库表

grails - 可以使用 map 作为输入变量配置 slurper 解析方法

grails - TDD grails View

jenkins - groovy.lang.MissingPropertyException:没有此类属性:类的 Jenkins :groovy.lang.Binding

url - Grails/Groovy:URL参数(最大值,偏移量)空白/字符串时引发NumberFormatException

grails withTransaction - 为什么它在域对象上?