성장에 목마른 코린이

[Java] InetAddress 클래스 본문

Java

[Java] InetAddress 클래스

성장하는 코린이 2022. 10. 21. 11:52
728x90

java.net.InetAddress 클래스는 IPv4와 IPv6 주소에 대한 자바의 고수준 표현 방식이다.

 

InetAddress.getLocalHost() 메서드는 실제 호스트네임과 IP주소를 얻기 위해 DNS로 연결을 시도한다.

그리고 해당 정보를 얻는 데에 실패할 경우, 메서드는 대신 루프백 주소를 반환한다.

루프백 주소는 일반적으로 호스트네임이 localhost이고 IP 주소가 127.0.0.1이다.

 

InetAddress 클래스는 호스트네임을 문자열로 반환하고 IP 주소를 문자열과 바이트 배열로 반환하는 네개의 Get 메서드를 제공한다.

1. getHostName()

InetAddress 객체에 의해 표현되는 IP 주소에 해당하는 호스트네임을 포함한 String을 반환한다.

만약 장비가 호스트네임을 가지고 있지 않거나 보안 관리자가 이름 검색을 막을 경우, 마침표로 구분된 네 자리 IP 주소가 반환된다.

2. getCanonicalHostName()

getHostName()은 호스트네임을 모르고 있다고 판단될 때만 DNS에 접근하지만,

getCanonicalHostName()은 가능하면 DNS에 요청하여 정보를 가져오며 이미 저장된 호스트네임이 있는 경우 갱신한다.

3. getHostAddress()

IP 주소를 마침표로 구분된 네자리 형식의 문자열로 반환한다.

4.  getAddress()

getAddress()에 의해 반환되는 바이트 배열의 숫자를 검사하면 처리하는 주소가 IPv4인지 IPv6인지 확인할 수 있다.

 

isLoopbackAddress() 메서드는 인자로 전달된 주소가 루프백 주소인 경우에 true를 반환하고 그렇지 않을 경우 false를 반환한다.

IPv4에서 루프백 주소는 127.0.0.1이 사용되고 IPv6에서는 0:0:0:0:0:0:0:1이 사용된다. (줄여서 ::1)

 

isMulticastAddress() 메서드는 인자로 전달된 주소가 멀티캐스트 주소일 경우 true를 반환하고 그렇지 않을 경우 false를 반환한다.

멀티캐스팅은 특정한 하나의 컴퓨터가 아닌 등록된 모든 컴퓨터에게 데이터를 전송한다.

IPv4에서 멀티캐스트 주소는 224.0.0.0에서 239.255.255.255범위를 가진다.

IPv6에서 멀티캐스트 주소는 바이트 FE로 시작한다.

 

isReachable(int timeout) 메서드는 현재의 호스트로부터 특정 노드가 접근 가능한지 (네트워크 연결을 맺을 수 있는지) 검사한다.

Comments