📜  Java的.net.InetAddress类在Java中(1)

📅  最后修改于: 2023-12-03 15:16:36.646000             🧑  作者: Mango

Java的.net.InetAddress类在Java中

Java中的.net.InetAddress类是用于表示IP地址的类,它提供了一些静态方法来查找和处理IP地址。.net.InetAddress类可以用于表示IPv4和IPv6地址。

获取IP地址

使用.getByName()方法可以返回一个IP地址:

InetAddress address = InetAddress.getByName("www.github.com");

我们可以使用.getHostAddress()方法获取IP地址的字符串表示:

String ip = address.getHostAddress();
System.out.println(ip); // 140.82.118.3
获取主机名

使用.getHostName()方法可以获取主机名:

String hostname = address.getHostName();
System.out.println(hostname); // www.github.com
判断IP地址类型

可以使用.isLinkLocalAddress()方法检查IP地址是否为链路本地地址,.isMulticastAddress()方法检查IP地址是否为组播地址,.isSiteLocalAddress()方法检查IP地址是否为本地站点地址,.isLoopbackAddress()方法检查IP地址是否为环回地址,以及.isAnyLocalAddress()方法检查IP地址是否为任意本地地址:

System.out.println(address.isLinkLocalAddress());    // false
System.out.println(address.isMulticastAddress());    // false
System.out.println(address.isSiteLocalAddress());    // false
System.out.println(address.isLoopbackAddress());     // false
System.out.println(address.isAnyLocalAddress());     // false
获取本机IP地址

可以通过获取InetAddress类的实例来获取本机IP地址:

InetAddress localhost = InetAddress.getLocalHost();
String localIP = localhost.getHostAddress();
System.out.println(localIP); // 192.168.1.2 (此处仅作演示)
异常处理

在使用.getByName()方法时,可能会出现UnknownHostException异常,表示该地址无法解析:

try {
    InetAddress address = InetAddress.getByName("www.not-exist.com");
} catch (UnknownHostException e) {
    e.printStackTrace();
}
总结

.net.InetAddress类是用于处理IP地址的类,可用于获取IP地址、主机名、判断IP地址类型以及获取本机IP地址等。如果要处理网络管理的应用程序,.net.InetAddress类是非常有用的。