java IP地址工具類,java IP地址獲取,java獲取客戶端IP地址
阿新 • • 發佈:2019-01-11
java IP地址工具類,java IP地址獲取,java獲取客戶端IP地址
================================
©Copyright 蕃薯耀 2019年1月11日
http://fanshuyao.iteye.com/
import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR", "X-Real-IP" }; /** * 判斷ip是否為空,空返回true * @param ip * @return */ public static boolean isEmptyIp(final String ip){ return (ip == null || ip.length() == 0 || ip.trim().equals("") || "unknown".equalsIgnoreCase(ip)); } /** * 判斷ip是否不為空,不為空返回true * @param ip * @return */ public static boolean isNotEmptyIp(final String ip){ return !isEmptyIp(ip); } /*** * 獲取客戶端ip地址(可以穿透代理) * @param request HttpServletRequest * @return */ public static String getIpAddress(HttpServletRequest request) { String ip = ""; for (String header : HEADERS) { ip = request.getHeader(header); if(isNotEmptyIp(ip)) { break; } } if(isEmptyIp(ip)){ ip = request.getRemoteAddr(); } if(isNotEmptyIp(ip) && ip.contains(",")){ ip = ip.split(",")[0]; } if("0:0:0:0:0:0:0:1".equals(ip)){ ip = "127.0.0.1"; } return ip; } /** * 獲取本機的區域網ip地址,相容Linux * @return String * @throws Exception */ public String getLocalHostIP() throws Exception{ Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces(); String localHostAddress = ""; while(allNetInterfaces.hasMoreElements()){ NetworkInterface networkInterface = allNetInterfaces.nextElement(); Enumeration<InetAddress> address = networkInterface.getInetAddresses(); while(address.hasMoreElements()){ InetAddress inetAddress = address.nextElement(); if(inetAddress != null && inetAddress instanceof Inet4Address){ localHostAddress = inetAddress.getHostAddress(); } } } return localHostAddress; } }
================================
©Copyright 蕃薯耀 2019年1月11日
http://fanshuyao.iteye.com/