🛠️Backend/Spring

[Spring Boot] 사용자가 접속한 IP 알아내기

뉴발자 2024. 12. 27.
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

개요

서버 내부에 저장된 이미지 경로를 반환하는 API를 생성했다.

 

하지만 외부망에서 접속 시 해당 이미지를 불러올 수 없었다.

http://192.168.0.100/imgs/img1.png ❌

 

 

해결 방안

HttpServletRequestgetHeader("Host") 함수를 사용하면 사용자가 접속한 IP의 주소를 받아올 수 있었다.

@PostMapping("/get/host")
public void getHost(HttpServletRequest request) {
  String host = request.getHeader("Host");
  
  // Host: 192.168.0.100
  System.out.println("Host: " + host);
}

 

 

이전 코드

@Value("${local.host}")
String host;

@PostMapping("/info/imgs")
public String getImgPath() {
  String path = "/imgs/img1.png";
  
  return host + path;
}

 

 

수정 코드

@PostMapping("/info/imgs")
public String getImgPath(HttpServletRequest request) {
  String host = request.getHeader("Host");

  String path = "/imgs/img1.png";
  
  return host + path;
}

 

 

 

 

 

 

 

 

 

 

728x90

댓글