我想在用户登录我的页面的同时就获取用户的IP 地址,并在数据库中保存下来。这个IP 地址是一个字符串,我采用UserIP下的一个属性值(ip)去建表存在数据库中。UserIP表与user表关联。现在是怎么获得这个真实的IP 地址很头痛,网络上的一些我看了下,如果用户设置了代理,那么获得的IP值就是代理端的。求各位大大,为小弟解决小这个问题。先谢过了!
解决方案 »
- eclipse中怎么安装jbpm-jpdl-suite-3.2.2
- 关于工程配置文件的路径
- org.hibernate.HibernateException: identifier of an instance 错误.
- weblogic 10 与hibernate的冲突问题
- hibernate 的问题:Configuration这一行报错
- 请教jxl写文件问题
- 想了解一下j2ee实现工作流
- 有没有人看过o`reilly的《Enterprise JavaBeans(第四版)》?
- ant中java任务中fork属性是什么意思呀?
- 请问下mysql里面char型主键自增的问题!
- jsp错误提示框
- 在mina中触发 IoHandlerAdapter的sessionIdle方法5
if (httpservletrequest == null)
return null;
String s = httpservletrequest.getHeader("X-Forwarded-For");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("Proxy-Client-IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("WL-Proxy-Client-IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("HTTP_CLIENT_IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("HTTP_X_FORWARDED_FOR");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getRemoteAddr();
if ("127.0.0.1".equals(s) || "0:0:0:0:0:0:0:1".equals(s))
try {
s = InetAddress.getLocalHost().getHostAddress();
}
catch (UnknownHostException unknownhostexception) {
}
return s;
}
if ((clientIp == null) || (clientIp.length() == 0) || ("unknown".equalsIgnoreCase(clientIp))) {
clientIp = request.getHeader("Proxy-Client-IP");
}
if ((clientIp == null) || (clientIp.length() == 0) || ("unknown".equalsIgnoreCase(clientIp))) {
clientIp = request.getHeader("WL-Proxy-Client-IP");
}
if ((clientIp == null) || (clientIp.length() == 0) || ("unknown".equalsIgnoreCase(clientIp))) {
clientIp = request.getRemoteAddr();
}