java获取本机IP地址和在Linux环境上获取远程的IP地址:
获取本地的ip地址(Linux)不能用,windows可以:
InetAddress ipAddr = InetAddress.getLocalHost(); str_ip = String.valueOf(ipAddr); if (str_ip.contains(".") || str_ip.contains("/")) { str_ip = str_ip.substring(str_ip.indexOf("/") + 1); } if (str_ip=="" || str_ip == null){ str_ip = "192.168.0.101"; } logger.info("str_ip------->"+str_ip); } catch (UnknownHostException e) { e.printStackTrace(); } return str_ip;
// 获取远程的ip地址windows和Linux都可以使用:
// 获取客户端ip地址 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.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Real-IP"); } return ip;