在 Java 中获取 IP 地址有多种实现方式,包括通过原生 Java API 以及使用第三方库。下面我将介绍几种常见的实现方式,并为每种方式提供详细的步骤流程和示例代码。
通过使用 Java 标准库中的 InetAddress
类,你可以获取本机的 IP 地址。
步骤流程:
java.net.InetAddress
类。InetAddress.getLocalHost()
方法获取本机的 InetAddress
对象。InetAddress
对象调用 getHostAddress()
方法获取 IP 地址。示例代码:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetIPAddress {
public static void main(String[] args) {
try {
InetAddress localhost = InetAddress.getLocalHost();
String ipAddress = localhost.getHostAddress();
System.out.println("IP Address: " + ipAddress);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
Apache Commons Net 库提供了更多处理网络相关操作的功能,包括获取 IP 地址。
步骤流程:
org.apache.commons.net.util.SubnetUtils
类。SubnetUtils
对象并使用 getInfo().getAddress()
方法获取 IP 地址。Maven 依赖:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.8.0</version>
</dependency>
Gradle 依赖:
implementation 'commons-net:commons-net:3.8.0'
示例代码:
import org.apache.commons.net.util.SubnetUtils;
public class GetIPAddressWithCommonsNet {
public static void main(String[] args) {
SubnetUtils subnetUtils = new SubnetUtils("192.168.1.0/24");
String ipAddress = subnetUtils.getInfo().getAddress();
System.out.println("IP Address: " + ipAddress);
}
}
这里的示例使用了一个子网工具类,你可以根据需要自行调整 IP 地址或子网。
这些是获取 IP 地址的几种常见方式,每种方式都有其适用场景和优劣势。根据你的具体需求,选择合适的方法进行实现。