java將域名解析為IP地址
阿新 • • 發佈:2019-01-30
熟悉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!"); } } }
結果: