본문 바로가기
JAVA

[JAVA] NetworkInterface Class로 IP주소와 호스트 명 가져오기

by 승븐지 2024. 7. 18.
반응형
반응형

InetAddress Class를 사용하여 로컬머신의 IP 주소와 호스트 이름 가져오기

https://ycds.tistory.com/21 

 

 

NetworkInterface Class 를 사용하여 IP 구하기

 

JAVA 소스이다.

import java.net.*;
import java.util.*;

   
public static void main(String[] args) {
    try {
        Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface ni = interfaces.nextElement();
            Enumeration<InetAddress> addresses = ni.getInetAddresses();
            while (addresses.hasMoreElements()) {
            	InetAddress addr = addresses.nextElement();
                if (!addr.isLinkLocalAddress() && !addr.isLoopbackAddress() && addr instanceof Inet4Address) {
                    System.out.println("IP 주소: " + addr.getHostAddress());
                    System.out.println("호스트 명: " + addr.getHostName());
                }
            }
        }
    } catch (SocketException e) {
        System.err.println("네트워크 인터페이스를 가져오는 중 오류 발생: " + e.getMessage());
        e.printStackTrace();
    }
}

 

NetworkInterface 실행결과

 

 

1.NetworkInterface.getNetworkInterfaces() 메서드를 사용하여 시스템에서 사용 가능한 모든 네트워크 인터페이스를 가져온다.
2.NetworkInterface.getInetAddresses() 메서드를 사용하여 해당 네트워크 인터페이스의 모든 IP 주소를 가져온다..
3.가져온 IP 주소 중에서 Link-Local AddressLoopback Address가 아니며, IPv4 주소인 경우에만 출력한다.

Link-Local Address 란 ? 
Link-Local Address는 말 로컬 네트워크 내에서만 사용 가능한 IP 주소 이다. 보통 자동 구성된 주소이며, 인터넷을 통한 외부 통신이 아닌, 같은 네트워크 내의 장치들 간의 통신에 사용된다.  예를 들어보자, 같은 Wi-Fi 네트워크에 연결된 스마트폰과 컴퓨터가 있을 경우, 이들은 Link-Local Address를 사용하여 서로 통신할 수 있다.IPv4 Link-Local 주소 범위는 169.254.0.0 ~ 169.254.255.255 까지 이다.
Loopback Address 란 ?
Loopback Address는 로컬 머신(즉, 컴퓨터 자기 자신)에서만 사용 가능한 IP 주소이다. 네트워크를 통하지 않고 자기 자신과 통신할 때 사용되며  일반적으로 127.0.0.1이 Loopback Address로 사용된다.
Link-Local Address와 Loopback Address 차이
- Link-Local Address는 네트워크 상의 여러 장치들 간의 통신을 위해 사용되는 반면,
- Loopback Address는 한 장치 내의 프로세스 간 통신에 사용된다.
  Link-Local Address와 Loopback Address는 각각 다른 용도로 사용되며, 이를 명확히 구분하여 사용해야 한다
반응형