티스토리 뷰

좋은 질문입니다!
0:0:0:0:0:0:0:1은 IPv6에서의 localhost 주소입니다.


🔍 이유 설명

  • 127.0.0.1은 IPv4의 localhost (loopback) 주소입니다.
  • 0:0:0:0:0:0:0:1 또는 간략히 ::1은 IPv6의 localhost 주소입니다.

Spring에서 request.getRemoteAddr() 등을 사용할 때, 운영 체제나 JVM이 IPv6 우선 설정을 하고 있다면 클라이언트 IP가 ::1 (혹은 풀 버전인 0:0:0:0:0:0:0:1)로 반환됩니다.


✅ 해결 방법 (IPv4 주소로 받고 싶을 때)

  1. IPv4 우선 사용하도록 JVM 옵션 설정
    실행 시 다음 옵션을 추가:예: java -Djava.net.preferIPv4Stack=true -jar yourapp.jar
  2. -Djava.net.preferIPv4Stack=true
  3. OS에서 IPv6 비활성화 (권장되진 않음 — 전체 네트워크 설정에 영향)
  4. 코드에서 IPv6 주소 처리하기
    0:0:0:0:0:0:0:1 → 127.0.0.1로 변환:
  5. if ("0:0:0:0:0:0:0:1".equals(ip) || "::1".equals(ip)) { ip = "127.0.0.1"; }

💡 보너스 팁

실제로 클라이언트의 IP를 구분하는 상황이라면 ::1과 127.0.0.1은 동일한 의미로, 둘 다 "내부에서 접속한 사용자"를 뜻하므로 처리는 동일하게 해도 됩니다.

필요하면 IPv6 주소 압축(::1)도 고려해서 처리하는 코드 알려드릴게요.

'Skill > 기반기술' 카테고리의 다른 글

web.xml 설정  (0) 2025.04.03
windows SMTP SERVER 설정  (0) 2025.03.04
부가세 계산방법  (0) 2024.11.20
JAVA_TOOL_OPTIONS  (0) 2024.05.03
UTM(통합 위협 관리)  (0) 2024.02.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함