java获取IP的方法

    xiaoxiao2021-03-25  163

    //转自一个项目

    import java.net.InetAddress;

    import java.net.UnknownHostException; import javax.servlet.http.HttpServletRequest; public class IpUtil { public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } if (ip.equals("0:0:0:0:0:0:0:1")) { ip = "xx"; } if (ip.split(",").length > 1) { ip = ip.split(",")[0]; } return ip; } public static String getRequestRealIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip != null && ip.contains(",")) { ip = ip.split(",")[0]; } if (!checkIp(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (!checkIp(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (!checkIp(ip)) { ip = request.getHeader("X-Real-IP"); } if (!checkIp(ip)) { ip = request.getRemoteAddr(); } return ip; } private static boolean checkIp(String ip) { if (ip == null || ip.length() == 0 || "unkown".equalsIgnoreCase(ip)) { return false; } return true; } /** * 获取请求来的ips * @param request * @return */ public static String getIpAddrress(HttpServletRequest request) { String ipAddress = request.getHeader("x-forwarded-for"); ipAddress = request.getHeader("x-forwarded-for"); 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 (!checkIp(ipAddress)) { ipAddress = request.getHeader("X-Real-IP"); } if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); // 这里主要是获取本机的ip,可有可无 if (ipAddress.equals("127.0.0.1") || ipAddress.endsWith("0:0:0:0:0:0:1")) { // 根据网卡取本机配置的IP InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } ipAddress = inet.getHostAddress(); } } if (ipAddress.split(",").length > 1) { ipAddress = ipAddress.split(",")[0]; } // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 // if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length() // // = 15 // if (ipAddress.indexOf(",") > 0) { // ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")); // } // } System.out.println("客户端ip:" + ipAddress); // 或者这样也行,对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 // return // ipAddress!=null&&!"".equals(ipAddress)?ipAddress.split(",")[0]:null; return ipAddress; } }
    转载请注明原文地址: https://ju.6miu.com/read-14333.html

    最新回复(0)