[Java Network] 2. IP주소 InetAddress
in Java on Java Network
java에서 IP주소 InetAddress 클래스에 대한 포스팅이다. InetAddress 클래스는 Java에서 IP 주소를 표현하고 네트워크와 관련된 작업을 수행할 수 있도록 제공되는 표준 클래스이다. 이 클래스는 IP 주소와 호스트 이름을 다룰 수 있으며, 네트워크 애플리케이션 개발에 사용한다.
1. IP 주소와 서브넷 마스크
- IP 주소
- 네트워크에 연결된 장치를 식별하는 고유한 주소.
- 예:
192.168.1.10
- 서브넷 마스크
- 네트워크 주소와 호스트 주소를 구분하기 위한 값.
- 예:
255.255.255.0
- 작동 방식
- 서브넷 마스크는 IP 주소와 비트 단위로 AND 연산을 수행하여 네트워크 주소를 구합니다.
- 예:
- IP 주소:
192.168.1.10
(이진:11000000.10101000.00000001.00001010
) - 서브넷 마스크:
255.255.255.0
(이진:11111111.11111111.11111111.00000000
) - 네트워크 주소:
192.168.1.0
(이진:11000000.10101000.00000001.00000000
)
- IP 주소:
ipconfig 명령어
명령어 ipconfig
를 실행하면 네트워크 인터페이스에 대한 IP 정보를 볼 수 있다.
$ ipconfig
이더넷 어댑터 이더넷:
IPv4 주소 . . . . . . . . . : 192.168.1.10
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . : 192.168.1.1
1. IPv4 주소
- 장치의 IP 주소
- 예:
192.168.1.10
- 설명:
- 이더넷 어댑터에 할당된 고유한 IP 주소
- 네트워크에서 이 장치를 식별하는 데 사용
- 192.168.1.10은 사설 IP 주소이며, 보통 가정용 네트워크나 소규모 네트워크에서 사용
- 이 IP 주소는 서브넷 내에서 유효한 호스트 주소로 사용
- 네트워크 주소가
192.168.1.0
이고 브로드캐스트 주소가192.168.1.255
라면,192.168.1.10
은 이 범위 내의 특정 호스트
2. 서브넷 마스크
- 네트워크와 호스트를 구분하기 위한 마스크.
- 예:
255.255.255.0
- 설명:
- 네트워크 주소와 호스트 주소를 구분하기 위한 값
255.255.255.0
은 클래스 C 서브넷 마스크로, 네트워크의 앞 24비트를 네트워크 부분으로, 나머지 8비트를 호스트 부분으로 사용- 이 서브넷에서는:
- 네트워크 주소:
192.168.1.0
- 브로드캐스트 주소:
192.168.1.255
- 유효한 호스트 주소 범위:
192.168.1.1
~192.168.1.254
- 네트워크 주소:
- 서브넷 내에서 최대 254개의 장치(호스트)를 연결할 수 있음
3. 기본 게이트웨이
- 네트워크 외부로 데이터를 전송할 때 사용하는 라우터의 IP 주소
- 예:
192.168.1.1
- 설명:
- 네트워크 외부로 데이터를 전송할 때 사용하는 라우터의 IP 주소
- 게이트웨이는 다른 네트워크(예: 인터넷)와 통신하기 위한 출입구 역할
- 일반적으로 가정용 네트워크에서는 라우터가 기본 게이트웨이 역할을 하며, 대부분의 사설 네트워크에서 기본적으로
192.168.1.1
을 사용
2. IP주소 InetAddress 클래스
import java.net.InetAddress;
public class IpNetAddressExample {
public static void main(String[] args) {
try {
// 로컬 호스트 정보
InetAddress localHost = InetAddress.getLocalHost();
System.out.println("로컬 호스트 이름: " + localHost.getHostName());
System.out.println("로컬 호스트 IP 주소: " + localHost.getHostAddress());
//도메인명으로 IP주소 정보
InetAddress google = InetAddress.getByName("www.google.com");
System.out.println("호스트 이름: " + google.getHostName());
System.out.println("IP 주소: " + google.getHostAddress());
System.out.println("toString(): " + google.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
로컬 호스트 이름: XXXX-MacBook-Pro
로컬 호스트 IP 주소: 192.168.23.16
호스트 이름: www.google.com
IP 주소: 142.250.198.36
toString(): www.google.com/142.250.198.36