📅  最后修改于: 2023-12-03 15:16:36.646000             🧑  作者: Mango
Java中的.net.InetAddress
类是用于表示IP地址的类,它提供了一些静态方法来查找和处理IP地址。.net.InetAddress
类可以用于表示IPv4和IPv6地址。
使用.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
可以使用.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
可以通过获取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
类是非常有用的。