DNS解析主機IP地址

InetAddress是IP地址的工具類,利用InetAddress提供的getAllByName方法可以返回主機對應的所有IP地址,基於該方法可以解析主機IP地址。

1.InetAddress簡介

InetAddress類可以將數字地址轉換爲主機名稱,反之亦然,Inet4Address與Inet6Address類是InetAddress的兩個直接子類,分別表示IPv4地址和IPv6地址。InetAddress類提供了各種getter方法以返回主機名、主機地址等信息。
InetAddress類不包含任何公開的構造函數,所以不能創建任意的地址。創建的所有地址都必須通過域名服務系統(DNS, Domain Name System)來進行檢查。
在下面的程序中,通過InetAddress的方法得到域名所映射的所有IP地址,DNS是允許域名同一些列主機相關聯的。

2.DNS解析主機IP地址程序

程序代碼如下:

import java.net.InetAddress;
import java.net.UnknownHostException;

public class DNSLookUp {

	/**
	 * @author Qunzer
	 * @param args
	 * @since 2014/1/5
	 */
	public static void main(String[] args) {
		InetAddress[] inetHost = null;
		String[] hostName = { "www.qunar.com", "www.baidu.com",
				"www.google.com" };
		for (String myHostName : hostName) {
			System.out.println("List of " + myHostName + " servers");
			try {
				inetHost = InetAddress.getAllByName(myHostName);
			} catch (UnknownHostException e) {
				// TODO Auto-generated catch block
				System.out.println("the host is unknown!");
				e.printStackTrace();
			}
			int count = 0;
			for (InetAddress inet : inetHost) {
				System.out.println(count + ": " + inet.getHostName()
						+ "的DNS關聯IP地址 " + inet.getHostAddress());
				count++;
			}
		}
		System.out.println("DNS looking up ended");
	}
}
在上面的程序中,利用字符串hostName定義主機域名數組,調用InetAddress類的靜態方法getAllByName方法,該方法接受主機域名作爲參數,然後返回所有和該域名關聯的IP地址數組。 如果無法解析主機域名的時候回拋出UnknownHostException異常。
執行結果如下:
List of www.qunar.com servers
0: www.qunar.com的DNS關聯IP地址 59.151.61.61
1: www.qunar.com的DNS關聯IP地址 59.151.61.62
List of www.baidu.com servers
0: www.baidu.com的DNS關聯IP地址 119.75.217.56
1: www.baidu.com的DNS關聯IP地址 119.75.218.77
List of www.google.com servers
0: www.google.com的DNS關聯IP地址 173.194.127.212
1: www.google.com的DNS關聯IP地址 173.194.127.209
2: www.google.com的DNS關聯IP地址 173.194.127.210
3: www.google.com的DNS關聯IP地址 173.194.127.211
4: www.google.com的DNS關聯IP地址 173.194.127.208
DNS looking up ended

從以上輸出信息中可以看出,去哪兒網將自己的網站託管在了2個不同的IP地址上,百度將自己的網站託管了2個IP地址上,谷歌則將託管到了5個服務器上。
由於qunar,baidu,google可能添加或刪除一些服務器,可能得到不同的結果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章