InetAddress
在JDK中提供了一个与IP地址相关的InetAddress类,该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法,接下来列举InetAddress类中的一些常用方法,如表1所示。
表1 InetAddress类的常用方法
方法声明 | 功能描述 | |
---|---|---|
InetAddress getByName(String host) | 获取给定主机名的的IP地址,host参数表示指定主机 | |
InetAddress getLocalHost() | 获取本地主机地址 | |
String getHostName() | 获取本地IP地址的主机名 | |
boolean isReachable(int timeout) | 判断在限定时间内指定的IP地址是否可以访问 | |
String getHostAddress() | 获取字符串格式的原始IP地址 |
表1中,列举了InetAddress的五个常用方法。其中,前两个方法用于获得该类的实例对象,第一个方法用于获得表示指定主机的InetAddress对象,第二个方法用于获得表示本地的InetAddress对象。通过InetAddress对象便可获取指定主机名、IP地址等,接下来通过一个案例来演示InetAddress类常用方法的基本使用,如文件1所示。
文件1 Example01.java
1 import java.net.InetAddress;
2 public class Example01 {
3 public static void main(String[] args) throws Exception {
4 // 获取本地主机InetAddress对象
5 InetAddress localAddress = InetAddress.getLocalHost();
6 // 获取主机名为“www.itcast.cn”的InetAddress对象
7 InetAddress remoteAddress =
8 InetAddress.getByName("www.itcast.cn");
9 System.out.println("本机的IP地址:"
10 + localAddress.getHostAddress());
11 System.out.println("itcast的IP地址:"
12 + remoteAddress.getHostAddress());
13 System.out.println("3秒内是否可以访问:"
14 + remoteAddress.isReachable(3000));
15 System.out.println("itcast的主机名为:"
16 + remoteAddress.getHostName());
17 }
18 }
运行结果如图1所示。
图1 运行结果
从图1可以看出,InetAddress类中常用方法的具体使用效果。需要注意的是,getHostName()方法用于得到某个主机的域名,如果InetAddress对象是通过主机名创建的,则将返回该主机名,否则,将根据IP地址反向查找对应的主机名,如果找到将其返回,否则将返回IP地址。