InetAddress類是Java中用於表示 Internet 協議(IP)地址的類,它提供了一些用於創建和操作IP地址的方法,可以創建IPv4和IPv6對象,還可以完成DNS反向查詢,獲取本地主機名等操作。
一、獲取IP地址
1、getByName方法:根據主機名或IP地址字符串返回相應的InetAddress對象。
InetAddress addr = InetAddress.getByName("www.baidu.com");
System.out.println("Address: " + addr.getHostAddress()); // 輸出:"Address: 61.135.169.125"
2、getAllByName方法:返回指定主機名的所有InetAddress對象數組(一個主機名可能對應多個IP地址)。
InetAddress[] addrs = InetAddress.getAllByName("www.baidu.com");
for (InetAddress addr : addrs) {
System.out.println("Address: " + addr.getHostAddress());
}
// 輸出:
// Address: 61.135.169.121
// Address: 61.135.169.125
3、getLocalHost方法:返回本地主機的InetAddress對象。
InetAddress addr = InetAddress.getLocalHost();
System.out.println("Address: " + addr.getHostAddress()); // 輸出:本機IP地址
二、address屬性
address屬性是InetAddress類中表示IP地址的內部byte數組,使用它可以獲取和設置IP地址的二進制值。
1、getAddress方法:獲取IP地址對應的byte數組。
InetAddress addr = InetAddress.getByName("www.baidu.com");
byte[] ipBytes = addr.getAddress();
for (int i = 0; i < ipBytes.length; i++) {
System.out.print(ipBytes[i] & 0xFF); // 輸出:61.135.169.125
if (i != ipBytes.length - 1) {
System.out.print(".");
}
}
2、根據byte數組創建InetAddress對象。
byte[] ipBytes = new byte[]{61, 135, 169, 125};
InetAddress addr = InetAddress.getByAddress(ipBytes);
System.out.println("Address: " + addr.getHostAddress()); // 輸出:61.135.169.125
三、其他方法
1、getCanonicalHostName方法:獲取IP地址對應的全限定域名。
InetAddress addr = InetAddress.getByName("8.8.8.8");
System.out.println("Canonical Host Name: " + addr.getCanonicalHostName()); // 輸出:dns.google
2、isReachable方法:判斷是否能夠到達該地址。
InetAddress addr = InetAddress.getByName("www.baidu.com");
boolean isReachable = addr.isReachable(5000); // 超時時間為5秒
System.out.println("Reachable? " + isReachable); // 輸出:true
3、hashCode和equals方法:比較兩個InetAddress對象是否相等。
InetAddress addr1 = InetAddress.getByName("www.baidu.com");
InetAddress addr2 = InetAddress.getByName("www.baidu.com");
System.out.println("hashCode: " + addr1.hashCode() + ", " + addr2.hashCode()); // 輸出相等的hashCode
System.out.println("equals: " + addr1.equals(addr2)); // 輸出true
除了上面描述的這些方法,InetAddress類還提供了一些其他的方法,讀者可以根據需要進行學習和使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304860.html