InetAddress类 详解
时间: 2023-07-05 20:03:29 浏览: 139
InetAddress域名解析
InetAddress 类是 Java 中表示 IP 地址的类,它提供了一组静态方法来获取本地主机的 IP 地址和域名以及其他主机的 IP 地址和域名。InetAddress 类可以表示 IPv4 地址和 IPv6 地址。
InetAddress 类的常用方法:
1. `getByName(String host)`:根据主机名或 IP 地址字符串获取 InetAddress 对象。
2. `getLocalHost()`:获取本地主机地址。
3. `getHostName()`:获取主机名。
4. `getHostAddress()`:获取 IP 地址。
5. `isReachable(int timeout)`:测试是否可以到达该地址。
6. `equals(Object obj)`:判断两个 InetAddress 对象是否相等。
7. `toString()`:返回 InetAddress 对象的字符串表示形式。
下面是一个使用 InetAddress 类的示例:
```java
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressExample {
public static void main(String[] args) {
try {
// 获取本机的 InetAddress 对象
InetAddress localHost = InetAddress.getLocalHost();
System.out.println("本机名:" + localHost.getHostName());
System.out.println("本机 IP 地址:" + localHost.getHostAddress());
// 根据主机名获取 InetAddress 对象
InetAddress baidu = InetAddress.getByName("www.baidu.com");
System.out.println("百度 IP 地址:" + baidu.getHostAddress());
// 测试是否可以到达该地址
boolean reachable = baidu.isReachable(5000);
System.out.println("是否可达:" + reachable);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
输出结果:
```
本机名:DESKTOP-XXXXXX
本机 IP 地址:192.168.0.100
百度 IP 地址:39.156.69.79
是否可达:true
```
以上示例中,首先使用 InetAddress 类的 `getLocalHost()` 方法获取本机的 InetAddress 对象,然后使用 `getHostName()` 和 `getHostAddress()` 方法分别获取主机名和 IP 地址。
接着使用 `getByName(String host)` 方法根据主机名获取 InetAddress 对象,并使用 `getHostAddress()` 方法获取 IP 地址。
最后使用 `isReachable(int timeout)` 方法测试是否可以到达该地址。
阅读全文