자바(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 주소가 출력됩니다.