在 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