在 Java 中获取本地 IP 地址

2024年9月10日 | 阅读 2 分钟

在 Java 中,在各种场景下获取机器的本地 IP 地址都至关重要。无论是网络配置、套接字编程还是服务器设置,了解本地 IP 地址都是基础。在本节中,我们将探讨使用 Java 获取本地 IP 地址的不同方法。

方法 1:使用 InetAddress 类

java.net.InetAddress 类提供了一种简单而有效的方法来检索本地 IP 地址。以下是如何使用它的示例:

文件名:LocalIPAddressExample.java

输出

Local IP Address: 192.168.1.10

InetAddress 类的 getLocalHost() 方法返回本地主机地址,该地址代表当前机器的 IP 地址。getHostAddress() 方法检索 IP 地址的文本表示形式。此方法适用于大多数通用用例。

方法 2:使用 NetworkInterface 类

Java 的 java.net.NetworkInterface 类提供了更多用于网络相关操作的高级功能。通过遍历可用的网络接口,您可以获取与每个接口关联的 IP 地址。以下是一个示例:

文件名:LocalIPAddressExample.java

输出

Local IP Address: 192.168.1.10
Local IP Address: 10.0.0.2

在此示例中,我们使用 getNetworkInterfaces() 方法检索所有可用的网络接口。然后,我们遍历每个接口,并使用 getInetAddresses() 方法获取与之关联的 IP 地址。我们过滤掉环回地址(isLoopbackAddress()),只关注 IPv4 地址(instanceof Inet4Address)。

注意:输出可能因您的网络配置而异。在上面的示例中,本地 IP 地址显示为方法 1 的 192.168.1.10,方法 2 的 192.168.1.10 和 10.0.0.2。代码将列出与非环回网络接口关联的所有可用 IPv4 地址。

结论

在 Java 中获取本地 IP 地址对于各种网络任务至关重要。InetAddress 类和 NetworkInterface 类提供了不同的方法来完成此任务。通过使用 InetAddress.getLocalHost(),您可以快速检索本地 IP 地址。或者,通过使用 NetworkInterface.getNetworkInterfaces() 遍历可用网络接口,您可以访问有关每个网络接口及其关联 IP 地址的更详细信息。

请记住,在代码中实现这些方法时,请处理 UnknownHostException 和 SocketException 等异常。通过获得的本地 IP 地址,您可以自信地在 Java 中继续进行与网络相关的任务。