【发布时间】:2014-12-17 09:45:24
【问题描述】:
我已经在服务器上上传了我的代码。
我正在使用:
String ipAddress1 = FrameworkUtil.getServletRequest().getHeader("Remote_Addr");
System.out.println("Remote_Addr ipAddress===>"+ipAddress1);
String ipAddress = FrameworkUtil.getServletRequest().getHeader("HTTP_X_FORWARDED_FOR");
System.out.println("HTTP_X_FORWARDED_FOR ipAddress==>"+ipAddress);
if (ipAddress == null) {
ipAddress = FrameworkUtil.getServletRequest().getRemoteAddr();
System.out.println(" getRemoteAddr ipAddress=>"+ipAddress);
}
我得到:
Remote_Addr ipAddress===>null
HTTP_X_FORWARDED_FOR ipAddress==>null
getRemoteAddr ipAddress=>127.0.0.1
但是在 google myip 中给我:233.233.22.331
我应该怎么做才能在 java 中获取它?
【问题讨论】:
-
127.0.0.1 表示您的服务器正在本地主机上运行
-
@JonnyHenly 但我应该怎么做才能获得请求 IP ?即请求来自哪个IP。
-
对所有 X-Forwarded-For-Posts 的补充:这些标题属性可以由代理设置,但这不是强制性的。代理的行为可以通过更改协议来改变,因此 HTTP 协议将列出连接到代理的客户端的 IP,但如果是 HTTPS,则不会列出。根据您要完成的任务,我不建议您的应用程序依赖于 X-Forwarded-For 标头。
标签: java request ip httprequest