📅  最后修改于: 2023-12-03 15:01:24.063000             🧑  作者: Mango
InetAddress 类是 Java 中用于表示 IP 地址的类,提供了一些静态方法来获取表示本机地址、远程地址等 InetAddress 对象。其中,InetAddress.getByAddress()
方法可以通过指定 IP 地址的字节数组来获取 InetAddress 对象。本文将介绍 InetAddress.getByAddress 方法的用法示例。
public static InetAddress getByAddress(byte[] addr) throws UnknownHostException
其中,addr 参数为 IP 地址的字节数组,UnknownHostException 为可能抛出的异常。
下面的示例演示了如何使用 InetAddress.getByAddress 方法获取指定 IP 地址的 InetAddress 对象:
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
public class InetAddressDemo {
public static void main(String[] args) {
try {
// IP 地址的字节数组表示
byte[] ipBytes = new byte[] { (byte)192, (byte)168, 0, 1 };
// 获取 InetAddress 对象
InetAddress address = InetAddress.getByAddress(ipBytes);
// 输出 InetAddress 对象
System.out.println("Host Address:" + address.getHostAddress()); // 192.168.0.1
System.out.println("Canonical Host Name:" + address.getCanonicalHostName()); // 192.168.0.1
System.out.println("Host Name:" + address.getHostName()); // 192.168.0.1
System.out.println("Address Length:" + address.getAddress().length); // 4
System.out.println("Address Bytes:" + Arrays.toString(address.getAddress())); // [192, 168, 0, 1]
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
运行以上示例,可以看到输出结果如下:
Host Address:192.168.0.1
Canonical Host Name:192.168.0.1
Host Name:192.168.0.1
Address Length:4
Address Bytes:[-64, -88, 0, 1]
说明:
getAddress()
方法返回的字节数组中的前两个字节出现了负数,这是因为 Java 中的 byte 类型是有符号的。