본문 바로가기

JAVA

도메인주소를 이용하여 IP 알아내기(자바 InetAddress 클래스를 이용)

도메인주소를 이용하여 IP 알아내기(InetAddress 클래스를 이용)

 

Java.net 패키지의 InetAddress라는 클래스를 이용하면 도메인주소와 IP 주소를 알아낼 수 있다.

InetAddresss static으로 따로 객체생성을 하지 않아도 된다. InetAddress의 메소드 중 getAllByName()를 사용하면 호스트의 모든  정보를 배열 형태로 반환해주는데, 예제에서 이 메소드를 사용할 것이다.

 

먼저 InetAddress의 중요 메소드에 대해 정리하자.

 

메소드

설명

Byte[] getAddress()

IP 주소를 바이트 형태로 반환.

String getHostAddress()

호스트의 IP 주소를 점으로 구분되는 10진수 형태로 반환

String getHostName()

호스트의 도메인명을 문자열로 반환.

Boolean isMulticastAddress()

주소가 멀티캐스트 주소인지 확인 후, 멀티캐스트 주소일 경우 true값 반환

String toString()

IP 주소를 문자열 형태로 반환.

 

위의 설명중 멀티캐스트라는 생소한 말이 나오는데, 멀티캐스트란 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송하는 방식이다.

 

이제 도메인주소를 이용하여 IP주소를 알아내는 자바 코드를 작성해보자.

 

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.Scanner;

 

public class NSLookup {

     public static void main(String args[]) {

 

           Scanner scan = new Scanner(System.in);

           InetAddress inetaddr[] = null;

           System.out.print("주소를 입력하시오 : ");

           String str = scan.nextLine();

           try {

 

                inetaddr = InetAddress.getAllByName(str);

           } catch (UnknownHostException e) {

                e.printStackTrace();

           }

 

           for (int i = 0; i < inetaddr.length; i++) {

                System.out.println("getHostName = " + inetaddr[i].getHostName());

                System.out.println("getHostAddress = " + inetaddr[i].getHostAddress());

                System.out.println("toString = " + inetaddr[i].toString());

                System.out.println("--------------------------");

           }

 

     }

 

}

 

산기대 사이트 도메인주소를 이용하여 IP주소를 알아보면

 

주소를 입력하시오 : www.kpu.ac.kr

getHostName = www.kpu.ac.kr

getHostAddress = 210.93.48.95

toString = www.kpu.ac.kr/210.93.48.95

--------------------------

이렇게 결과가 출력된다.

 

여기서는 도메인 하나가 하나의 IP주소를 가지고 있지만 하나의 도메인이 여러 개의 IP주소를 가지고 있을 경우도 있기 때문에 여러 개가 출력되는 사이트도 있다(배열형태로 저장하는 이유). 위에서 IP주소를 알았으니 IP주소로도 테스트 해보면 도메인 주소를 알 수 있다. 예외처리의 경우, 여기서 도메인 명이 잘못되었을 경우나 IP주소가 잘못되었을 경우에 UnknownHostException이 실행된다.

'JAVA' 카테고리의 다른 글

Thread 사용방법(extends, implements)  (1) 2011.03.17
Thread 시작, 종료 예제  (1) 2011.03.11
상속 & 오버라이딩  (1) 2011.02.28