熟悉InetAddress類:InetAddress類主要是用來得到所指定的網路地址,
InetAddress類沒有直接顯式的建構函式。要產生一個InetAddress對象,必須運用一個可用的Factory 方法。Factory 方法(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。"); } }}
結果: