JAVA

JAVA 사용자 ip 가져오기

까잉이 2022. 11. 8. 15:06
// 아이피 가져오기
	public String getUserIp() throws Exception {

		String clientIp = null;
	    boolean isIpInHeader = false;

	    HttpServletRequest request =
	    ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();

	    List<String> headerList = new ArrayList<>();
	    headerList.add("X-Forwarded-For");
	    headerList.add("HTTP_CLIENT_IP");
	    headerList.add("HTTP_X_FORWARDED_FOR");
	    headerList.add("HTTP_X_FORWARDED");
	    headerList.add("HTTP_FORWARDED_FOR");
	    headerList.add("HTTP_FORWARDED");
	    headerList.add("Proxy-Client-IP");
	    headerList.add("WL-Proxy-Client-IP");
	    headerList.add("HTTP_VIA");
	    headerList.add("IPV6_ADR");

	    for (String header : headerList) {
	        clientIp = request.getHeader(header);
	        if (StringUtils.hasText(clientIp) && !clientIp.equals("unknown")) {
	            isIpInHeader = true;
	            break;
	        }
	    }

	    if (!isIpInHeader) {
	        clientIp = request.getRemoteAddr();
	    }

	    return clientIp;
	}

혹은

InetAddress local = null;
local = InetAddress.getLocalHost();
String localIp = local.toString();