1. 程式人生 > >java將域名解析為IP地址

java將域名解析為IP地址

熟悉InetAddress類:InetAddress類主要是用來得到所指定的網路地址,InetAddress類沒有直接顯式的建構函式。要生成一個InetAddress物件,必須運用一個可用的工廠方法。工廠方法(factory method)僅是一個類中的靜態方法返回一個該類例項的約定。這是在一個帶有各種引數列表的過載建構函式中完成的,當持有惟一方法名時可使結果更清晰。

InetAddress有三個方法可以用來建立InetAddress的例項

1.static InetAddress getLocalHost( ) throws UnknownHostException

2.static InetAddress getByName(String hostName) throws UnknownHostException

3.static InetAddress[ ] getAllByName(String hostName) throws UnknownHostException

InetAddress類的非靜態方法

   boolean equals(Object other)
如果物件具有和other相同的Internet地址則返回true。
byte[ ] getAddress( )
返回此InetAddress物件的原始 IP 地址。
String getHostAddress( )
返回與InetAddress物件相關的主機地址的字串。
String getHostName( )
返回與InetAddress物件相關的主機名的字串。
int hashCode( )
返回呼叫物件的雜湊碼。
boolean isMulticastAddress( )
如果Internet地址是一個多播地址則返回true;否則返回false。 
String toString( )
返回主機名字串和IP地址。

下面我們寫一個程式來解析域名:

package com.ip;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Scanner;
public class IP {
    public static void main(String[]args)
    {
        try {
            System.out.print("請輸入要解析的域名:");
            Scanner in=new Scanner(System.in);
            String domainname=in.nextLine();//輸入要解析的域名
            System.out.println("使用InetAddress類的方法獲取網站"+domainname+"的IP地址...");

                System.out.println("總共ip個數:"
                        + InetAddress.getAllByName(domainname).length);//獲取接續出來的ip的個數
                InetAddress[] inetadd = InetAddress.getAllByName(domainname);
                //遍歷所有的ip並輸出
                for (int i = 0; i < inetadd.length; i++) {
                    System.out.println("第" + (i + 1) + "個ip:" + inetadd[i]);
                }

        } catch (UnknownHostException e) {
            System.out.println("獲取網站www.csdn.net的IP地址失敗!沒有對應的IP!");
        }
    }

}

結果: