[spring boot] IPv4 설정

신명철·2022년 2월 17일
0

etc

목록 보기
1/5

프로젝트 도중 IP 를 받을 필요가 생겼다.
IP를 받는 방법은 구글링 해서 쉽게 얻을 수 있었다.

@Controller
@RequestMapping("/address/api")
@Slf4j
public class AddressController {

	@GetMapping("/get")
	@ResponseBody
	public String getLocation(HttpServletRequest request) {
		String ip = request.getHeader("X-Forwarded-For");
		if (ip == null) {
            ip = request.getHeader("Proxy-Client-IP");
            log.info(">>>> Proxy-Client-IP : " + ip);
        }
        if (ip == null) {
            ip = request.getHeader("WL-Proxy-Client-IP"); // 웹로직
            log.info(">>>> WL-Proxy-Client-IP : " + ip);
        }
        if (ip == null) {
            ip = request.getHeader("HTTP_CLIENT_IP");
            log.info(">>>> HTTP_CLIENT_IP : " + ip);
        }
        if (ip == null) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
            log.info(">>>> HTTP_X_FORWARDED_FOR : " + ip);
        }
        if (ip == null) {
            ip = request.getRemoteAddr();
        }
        
        log.info(">>>> Result : IP Address : "+ip);
 
        return ip;
 
    }
}

근데 IP 가 아래와 같이 IPv6 형식으로 출력됐다

IP : 0:0:0:0:0:0:0:1

JAVA VM 설정을 해주면 원하는 IPv4 형식으로 받을 수 있다.

-Djava.net.preferIPv4Stack=true

VM arguments 에 위 코드를 넣어주면 IPv4 형식으로 IP를 출력할 수 있다!

profile
내 머릿속 지우개

0개의 댓글