Java InetAddress類及其常用方法

2020-07-16 10:04:36
Internet 上的主機有兩種方式表示地址,分別為域名 IP 地址。java.net 包中的 InetAddress 類物件包含一個 Internet 主機地址的域名和 IP 地址。

InetAddress 類提供了操作 IP 地址的各種方法。該類本身沒有構造方法,而是通過呼叫相關靜態方法獲取範例。InetAddress 類中的常用方法如下表 所示。
表1 InetAddress類的常用方法
方法名稱 說明
boolean equals(Object obj) 將此物件與指定物件比較
byte[] getAddress() 返回此 InetAddress 物件的原始 IP 地址
static InetAddress[] getAHByName(String host) 在給定主機名的情況下,根據系統上設定的名稱,伺服器返
回其 IP 地址所組成的陣列
static InetAddress getByAddress(byte[] addr) 在給定原始 IP 地址的情況下,返回 InetAddress 物件
static InetAddress getByAddress(String host) 在給定主機名的情況下確定主機的 IP 地址
String getCanonicalHostName() 獲取此 IP 地址的完全限定域名
String getHostAddress() 返回 IP 地址字串(以文字表現形式)
String getHostName() 返回此 IP 地址的主機名
static InetAdderss getLocalHost() 返回本地主機

例 1

編寫程式練習 InetAddress 類的基本使用方法,主要步驟如下所示。

(1) 建立一個類。在 main() 方法中建立一個 InetAddress 物件,呼叫 getByName() 方法並傳遞引數“www.qqxom”輸出此物件的 IP 地址字串和主機名,程式碼如下所示。
public static void main(String[] args)
{       
    try
    {
        InetAddress ia1=InetAddress.getByName("www.qq.com");
        System.out.println(ia1.getHostName());
        System.out.println(ia1.getHostAddress());
    }
    catch(UnknownHostException e)
    {
        e.printStackTrace();
    }       
}

(2) 在 main() 方法中新增程式碼,建立一個 InetAddress 物件,呼叫 getByName() 方法並傳遞引數“61.135.169.105”輸出此物件的 IP 地址字串和主機名,程式碼如下所示。
try
{
    InetAddress ia2=InetAddress.getByName("61.135.169.105");
    System.out.println(ia2.getHostName());
    System.out.println(ia2.getHostAddress());
}
catch(UnknownHostException e)
{
    e.printStackTrace();
}

(3) 建立一個 InetAddress 物件用於獲取本地主機的資訊,輸出此物件的 IP 地址字串和主機名,程式碼如下所示。
try
{
    InetAddress ia3=InetAddress.getLocalHost();
    System.out.println("主機名:"+ia3.getHostName());
    System.out.println("本地ip地址:"+ia3.getHostAddress());
}
catch(UnknownHostException e)
{
    e.printStackTrace();
}

(4) 執行程式,執行結果如下所示。
www.qq.com
123.151.137.18
61.135.169.105
61.135.169.105
主機名:WQ-20161107KCPN
本地ip地址:192.168.0.102

注意:在上述程式碼中包含網際網路的地址,所以執行時需要連網,否則會出現異常。