/** * 获取客户端的真实IP */ public String getRealIpAddr(HttpServletRequest request) { String ipAddress = null; ipAddress = request.getHeader("x-forwarded-for"); //System.out.println("ipAddress:" + ipAddress); if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("Proxy-Client-IP"); } if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("WL-Proxy-Client-IP"); } if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) { //根据网卡取本机配置的IP InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (Exception e) { e.printStackTrace(); } ipAddress = inet.getHostAddress(); } } // 多个IP按照','分割(jiequ) // 对于通过多个代理的情况,第一个IP为客户端真实IP // '***.***.***.***'.length() = 15 if (null != ipAddress && ipAddress.length() > 15) { if (ipAddress.indexOf(",") > 0) { ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")); } } //System.out.println("ip:" + ipAddress); return ipAddress; }
Java获取客户端真实IP 解决request.getRemoteAddr()
猜你喜欢
转载自haoyiming.iteye.com/blog/2376392
今日推荐
周排行