【发布时间】:2012-07-01 19:11:16
【问题描述】:
我在一些通用类中有这个。
public static String getRequestIp (HttpServletRequest request){
String ipaddr = request.getHeader("X-FORWARDED-FOR");
if (ipaddr == null)ipaddr = request.getRemoteAddr();
return ipaddr;
}
对于每个请求,我都会调用该方法,并在某个时刻在 mysql 数据库中插入一条记录。
在大多数情况下,它可以正常工作,我可以在正确的字段中看到每个请求的记录,其中包含有效的 IP 地址。但有时IP应该在哪里是这样的。 “未知,93.186.30.120”或“10.0.1.169, 186.38.84.3” Apache 在前端侦听端口 80,并用作侦听端口 8081 的 Tomcat 的代理。 我的路由器配置不允许传递来自 80 以外的任何端口的任何连接。 有什么帮助吗? 提前致谢。
【问题讨论】:
-
一个值得了解的细节:如果 IP 地址为“未知,93.186.30.120”,则用户代理为“BlackBerry8520/5.0.0.681 Profile/MIDP-2.1 Configuration/CLDC -1.1 VendorID/210"
标签: java apache tomcat networking servlets