我想在用户登录我的页面的同时就获取用户的IP 地址,并在数据库中保存下来。这个IP 地址是一个字符串,我采用UserIP下的一个属性值(ip)去建表存在数据库中。UserIP表与user表关联。现在是怎么获得这个真实的IP 地址很头痛,网络上的一些我看了下,如果用户设置了代理,那么获得的IP值就是代理端的。求各位大大,为小弟解决小这个问题。先谢过了!
解决方案 »
- Java都可以做什么项目?菜鸟,理解理解·····
- 获取mysql存储过程生成临时表的数据
- 关于动态html表单,struts的actionform应该如何设置
- 再jboss4.0.3/tomcat5.5中使用HttpServletRequestWrapper出现奇怪问题
- spring事务配置很奇怪的问题
- 求 用STRUTS 怎样拆分MARC 码克数据
- 难道这么简单的问题就没有人能解决吗?
- eclipse+weblogic的结合问题
- jboss-3.2.1_tomcat-4.1.24我做设置但是好象还是有问题
- 请问哪里有java书籍下载?
- 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();
}