Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 클라이언트 IP 주소 확인하기

자바(Java)에서 클라이언트의 IP 주소를 확인하려면 java.net 패키지에 포함된 InetAddress 클래스를 활용하면 됩니다. 아래 예제 코드를 통해 실제 구현 방법을 살펴보겠습니다.

예제 코드

import java.net.*;
import java.io.*;
import java.util.*;
import java.net.InetAddress;
public class Demo{
    public static void main(String args[]) throws Exception{
        InetAddress my_localhost = InetAddress.getLocalHost();
        System.out.println("The IP Address of client is : " + (my_localhost.getHostAddress()).trim());
        String my_system_address = "";
        try{
            URL my_url = new URL("https://bot.whatismyipaddress.com");
            BufferedReader my_br = new BufferedReader(new
            InputStreamReader(my_url.openStream()));
            my_system_address = my_br.readLine().trim();
        }
        catch (Exception e){
            my_system_address = "Cannot Execute Properly";
        }
    }
}

출력 결과

The IP Address of client is : 127.0.0.1

코드 설명

위 코드가 동작하는 원리를 단계별로 살펴보겠습니다.

  • Demo 클래스: 프로그램의 진입점인 main 메서드를 포함하는 클래스입니다.
  • InetAddress.getLocalHost(): 로컬 호스트의 네트워크 정보를 담고 있는 InetAddress 객체를 생성하고 반환합니다.
  • getHostAddress(): 객체에 저장된 IP 주소를 문자열 형태로 가져오며, trim() 메서드를 사용해 앞뒤의 불필요한 공백을 제거한 후 콘솔에 출력합니다.
  • 공인 IP 조회: 외부 서비스(bot.whatismyipaddress.com)에 접속하여 공인(public) IP 주소를 가져오는 부분도 포함되어 있으며, 예외 발생 시 안내 문구를 출력하도록 처리했습니다.

출력 결과에 나타난 127.0.0.1은 루프백(loopback) 주소로, 네트워크를 통해 접근하는 것이 아니라 자기 자신의 컴퓨터, 즉 localhost를 의미합니다. 따라서 이 값은 정상적인 결과이며, 실제 네트워크 환경에서 실행하면 할당된 LAN 또는 공인 IP 주소가 출력됩니다.