为了防止网站钓鱼,我们需要对用户的IP地址进行分析处理,可是用户也有可能通过代理方式进行操作,那么该如何获取到用户的IP地址呢?
摘自网络上的代码:
1 public static String getClientIP(HttpServletRequest httpservletrequest) { 2 if (httpservletrequest == null) 3 return null; 4 String s = httpservletrequest.getHeader("X-Forwarded-For"); 5 if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s)) 6 s = httpservletrequest.getHeader("Proxy-Client-IP"); 7 if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s)) 8 s = httpservletrequest.getHeader("WL-Proxy-Client-IP"); 9 if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s)) 10 s = httpservletrequest.getHeader("HTTP_CLIENT_IP"); 11 if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s)) 12 s = httpservletrequest.getHeader("HTTP_X_FORWARDED_FOR"); 13 if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s)) 14 s = httpservletrequest.getRemoteAddr(); 15 if ("127.0.0.1".equals(s) || "0:0:0:0:0:0:0:1".equals(s)) 16 try { 17 s = InetAddress.getLocalHost().getHostAddress(); 18 }catch (UnknownHostException uhe) {
19 uhe.printStackTrace();
20 } 21 return s; 22 }