在 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
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