[英]how to convert ipv6 address into integer in Java programming language
如何用Java編程語言將ipv6地址轉換為整數
您將必須使用BigInteger
,因為IPv6地址比Java的本機整數數據類型支持的128位大。
根據您擁有IPv6地址的格式(原始字節數組,十六進制字符串,...),可能會或可能不會有合適的BigInteger
構造函數。
開源IPAddress Java庫可以進行轉換。 免責聲明:我是IPAddress庫的項目經理。
String str = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
IPAddressString addrStr = new IPAddressString(str);
IPAddress addr = addrStr.getAddress();
BigInteger value = addr.getValue();
System.out.println(value);
輸出:
42540766452641154071740215577757643572
另請注意,該代碼對IPv4地址的作用相同。
該庫還能夠進行反向轉換,直接從BigInteger或從整數字符串構造IPv6Address實例,如下所示。 整數字符串必須是32位的十六進制整數字符串。
從32位十六進制整數字符串進行反向轉換:
str = value.toString(16);
int len = str.length();
while(len < 32) {
str = "0" + str;
len++;
}
addrStr = new IPAddressString(str);
System.out.println(addrStr.getAddress());
輸出:
2001:db8:85a3::8a2e:370:7334
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.