7. InetAddress
· InetAddress Class는 IP 주소를 표현한 클래스이다.
· 자바에서는 모든 IP 주소를 InetAddress Class를 사용한다.
① InetAddress Class의 생성자
· InetAddress Class의 생성자는 하나만 존재하지만, 특이하게 기본 생성자(default constructor)의 접근 제한자가 Default이기 때문에 new 연산자 객체를 생성할 수 없다.
· 따라서 InetAddress Class는 객체를 생성해 줄 수 있는 5개의 static 메소드를 제공하고 있다.
· 5개의 static 메소드는 모두 UnknownHostException를 발생시키기 때문에 반드시 예외처리를 해야 한다.
반환형 |
메소드 |
설명 |
static InetAddress[] |
getAllByName(String host) |
매개변수 host에 대응되는 InetAddress배열을 반환한다. |
static InetAddess |
getByAddess(byte[] addr) |
매개변수 addr에 대응되는 InetAddress 객체를 반환한다. ex) 123.456.789.012 byte[] addr = new byte[4]; addr[0] = (byte) 123; addr[1] = (byte) 456; addr[2] = (byte) 789; addr[3] = (byte) 012; InetAddress iaddr = InetAddress.getByAddress(addr); |
getByAddress(String host, byte[] addr) |
매개변수 host와 addr로 InetAddress객체를 생성한다. |
|
static InetAddress |
getByName(String host) |
매개변수 host에 대응되는 InetAddress 객체를 반환한다. |
getLocalHost() |
로컬 호스트의 InetAddress 객체를 반환한다. |
② InetAddress 주요 메소드
· InetAddess 클래스는 IP 주소를 객체화했기 때문에 다양한 메소드를 제공하지 않는다.
· 다만 호스트 이름과 호스트에 대응하는 IP주소를 알 수 있도록 메소드를 제공한다.
반환형 |
메소드 |
설명 |
byte[] |
getAddress() |
InetAddress 객체의 실제 주소 IP 주소를 바이트 배열로 리턴한다. |
String |
getHostAddress() |
IP 주소를 문자열로 반환한다. |
getHostName() |
호스트 이름을 문자열로 반환한다. |
|
toString() |
IP 주소를 스트링 문자열로 오버라이딩한 메소드이다. 스트링 문자열 형식은 'host / ip'이다. |
import java.net.InetAddress; import java.net.UnknownHostException; public class IndetAddressEx { public static void main(String[] args) { // InetAddress ip 정보와 host 정보를 가지는 객체 // InetAddress 객체는 생성자가 아닌 Static 메소드를 이용해서 생성한다. try { // 1. host 이름에 해당하는 ip정보를 가진 inetAddress 객체 얻기 InetAddress ipinfo1 = InetAddress.getByName("www.google.com"); String ip = ipinfo1.getHostAddress(); System.out.println("IP 주소 : " + ip); // 2. host 이름에 해당하는 ip정보를 가진 모든 inetAddress객체 얻기 InetAddress[] ipArray = InetAddress.getAllByName("www.google.com"); for (InetAddress tempip : ipArray) { System.out.println(tempip); } // 3. 현재 컴퓨터의 ip정보를 가진 inetAddress객체 얻기 InetAddress myHost = InetAddress.getLocalHost(); System.out.println("host : " + myHost.getHostName()); System.out.println("host IP : " + myHost.getHostAddress()); } catch (UnknownHostException e) { // host 이름에 해당하는 host를 찾지 못했을 경우 예외 처리 e.printStackTrace(); } } }