在 Android 应用程序中获取域名的 IP 地址是一个常见的需求。Android 提供了几种方法来实现这个功能:
1. 使用 `InetAddress` 类:
```java
try {
InetAddress[] addresses = InetAddress.getAllByName("www.example.com");
for (InetAddress address : addresses) {
String ipAddress = address.getHostAddress();
// 使用 ipAddress
}
} catch (UnknownHostException e) {
// 处理异常
}
```
2. 使用 `DnsResolver` 类(Android 9.0 及更高版本):
```java
DnsResolver resolver = DnsResolver.getInstance();
DnsResponse response = resolver.resolve("www.example.com", DnsResolver.PROTO_UDP);
List
for (InetAddress address : addresses) {
String ipAddress = address.getHostAddress();
// 使用 ipAddress
}
```
3. 使用 `HttpURLConnection` 或 `OkHttpClient` 进行 HTTP 请求:
```java
URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("HEAD");
connection.connect();
String ipAddress = connection.getURL().getHost();
// 使用 ipAddress
```
这些方法都可以用于获取域名的 IP 地址。选择哪种方法取决于具体的应用场景和 Android 版本支持情况。一般来说,直接使用 `InetAddress` 类是最简单和常见的方式。