在 Java 中獲取主機名

Muhammad Zeeshan 2023年1月30日 2022年4月26日
  1. 在 Java 中使用 InetAddress 獲取主機名
  2. 在 Java 中演示使用 InetAddress 類獲取主機名
在 Java 中獲取主機名

在本教程中,我們將瞭解如何使用 Java API 獲取 IP 地址和主機名。

在 Java 中使用 InetAddress 獲取主機名

包 java.net 包含處理當前機器的 IP 地址和主機名的類 InetAddress

通過使用同一個類的 getLocalHost() 函式收集系統的 IP 地址,我們可以使用 java.net 包中 InetAddress 類的 getHostName() 獲取 Windows 計算機的系統名稱。

如果安全管理器未授權獲取本地主機的地址,getHostName() 會提供 IP 地址的文字表示。

InetAddress 類的 getLocalHost()getByName (String host) 方法分別處理本地和遠端主機。

語法:

InetAddress inetadd = InetAddress.getLocalHost();

該函式將為執行 Java 程式的 inetadd 本地伺服器建立 InetAddress 的例項。結果,返回本地主機的地址。

這是通過從系統中檢索主機名並將其轉換為 InetAddress 來完成的。

在 Java 中演示使用 InetAddress 類獲取主機名

首先,匯入以下庫。

java.net.InetAddress

我們將通過一個簡單的示例向你展示如何在 Java 中檢索主機名。

InetAddress inetadd = InetAddress.getLocalHost();

我們將使用 InetAddress 方法為 Java 程式執行的名為 inetadd 的本地伺服器建立 InetAddress 的例項。

String name = inetadd.getHostName();

我們將使用 getHostName() 方法獲取主機名,並將其儲存在名為 name 的字串型別變數中。

String address = inetadd.getHostAddress();

之後,藉助 getHostAddress() 方法,我們將獲取主機地址並將其儲存在名為 address 的字串型別變數中。如果這無法將本地或站點主機名解析為地址,則會丟擲 UnknownHostException

原始碼:

import java.net.InetAddress;
import java.net.UnknownHostException;
public class HostnameExample {
    public static void main(String[] args)
    {
        try {
            InetAddress inetadd = InetAddress.getLocalHost();
            String name = inetadd.getHostName();
            String address = inetadd.getHostAddress();
            System.out.println("HostName is : "+name);
            System.out.println("Host Address is: "+address);
        }
        catch(UnknownHostException u){
        }
}
}

輸出:

$javac HostnameExample.java
$java -Xmx128M -Xms16M HostnameExample
HostName is : f97aedb6192a
Host Address is: 127.0.0.2
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn