본문 바로가기
JAVA

JSP 아이피 확인 방법! 사용자, 프록시, 서버 (+코드예제)

by 규루리 2025. 4. 15.

🌐 JSP에서 사용자 IP 확인하기

JSP에서 IP를 확인하는 가장 간단한 방법은 request 객체를 사용하는 것입니다. request 객체는 클라이언트의 정보를 담고 있으며, 여기서 IP 주소를 쉽게 확인할 수 있습니다.

<%@ page import="java.net.*" %>
<%
    String userIP = request.getRemoteAddr(); // 사용자 IP 주소
    out.println("사용자 IP 주소는: " + userIP);
%>

 

 

🌍 프록시 서버를 거친 IP 확인하기

하지만 사용자가 프록시 서버로드 밸런서를 통해 접속한 경우에는, getRemoteAddr()로는 실제 사용자 IP를 알 수 없습니다. 이 경우에는 X-Forwarded-For 헤더를 사용해야 합니다. 프록시 서버나 로드 밸런서가 이 헤더에 원래 사용자의 IP를 넣어주기 때문입니다.

<%@ page import="java.net.*" %>
<%
    String userIP = request.getHeader("X-Forwarded-For"); // 프록시를 거친 IP 주소
    if (userIP == null) {
        userIP = request.getRemoteAddr(); // 프록시가 없다면 직접 접속한 IP
    }
    out.println("사용자 IP 주소는: " + userIP);
%>
SMALL

 

🌍 서버 IP 확인하기 (서버의 로컬 IP)

<%@ page import="java.net.*" %>
<%
    try {
        InetAddress inetAddress = InetAddress.getLocalHost(); // 서버의 로컬 IP 주소
        String serverIP = inetAddress.getHostAddress(); // 서버 IP 주소 가져오기
        out.println("서버의 IP 주소는: " + serverIP);
    } catch (UnknownHostException e) {
        e.printStackTrace();
        out.println("서버 IP 주소를 가져오는 데 실패했습니다.");
    }
%>

 

 

🌍 서버의 외부 IP 주소 확인하기

서버가 로컬 네트워크에서 동작하고 있거나, 외부 IP를 알고 싶을 경우, 외부 API를 호출하여 서버의 외부 IP 주소를 알 수 있습니다. 예를 들어, 다음과 같이 외부 API를 호출하여 서버의 공인 IP를 얻을 수 있습니다.

<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
<%
    try {
        URL url = new URL("http://checkip.amazonaws.com/");  // 외부 API 호출
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String serverIP = in.readLine();  // 외부 IP 주소 받아오기
        out.println("서버의 외부 IP 주소는: " + serverIP);
    } catch (IOException e) {
        e.printStackTrace();
        out.println("서버 외부 IP 주소를 가져오는 데 실패했습니다.");
    }
%>
반응형

 

🌍 IP 확인을 활용하는 다양한 방법

  1. 보안 강화: IP 주소를 사용해 로그인 시도를 제한하거나, 이상 징후를 탐지하여 보안을 강화할 수 있습니다. 예를 들어, 동일 IP에서 여러 번 로그인 실패가 발생하면, 해당 IP를 차단하거나 재시도 제한을 둘 수 있습니다.
  2. 지역 제한: 국가나 지역에 따라 사용자가 접근할 수 있는 콘텐츠를 제한하는 기능을 구현할 수 있습니다. IP를 통해 대략적인 위치를 파악하고, 특정 국가에서만 접속을 허용하는 방식입니다.
  3. 세션 관리: 세션 도용을 방지하기 위해, 세션을 생성할 때 사용자의 IP를 기록하고, 이후 세션에서 접속한 IP와 비교하여 세션 무효화를 구현할 수 있습니다.
  4. 데이터 분석: 사용자의 IP 주소를 바탕으로 트래킹을 하거나, 특정 지역에 맞는 콘텐츠를 제공하는 지역 기반 서비스를 구현할 수 있습니다.

 

 

JSP와 JAVA에서 IP 확인하는 방법은 매우 간단하면서도 다양한 보안 및 기능적 요구를 충족시킬 수 있는 중요한 기술입니다. **request.getRemoteAddr()**로 간단히 IP를 확인할 수 있지만, 프록시 서버로드 밸런서를 고려할 때는 X-Forwarded-For 헤더를 활용하는 것이 좋습니다. 이처럼 IP 확인은 보안, 사용자 맞춤형 서비스, 세션 관리 등 다양한 분야에서 활용될 수 있습니다.

 

 

728x90
반응형
LIST