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();
		}
	}
}

+ Recent posts