Skip to main content

2.3. IPv6 的位址格式 ?

· 3 min read

前文提到 IPv6 的位址為 128 位元。這麼高的位元數換算成一般十進位數字表示法的話,長度將達到 10 的 39 次方:

2^128-1: 340282366920938463463374607431768211455

這麼長的數字或位址將很難記得住。而且,IPv6 的位址是逐位定位的 (就像 IPv4, 但這個觀點不是公認的). 所以透過十六進制表示法能更好地表示這些數字。將每 4 位元 (也叫做 "nibble") 表示為數字 (0-9) 或字符 a-f (10-15). 這種表示法可以將 IPv6 的地址長度縮減到可用 32 個字符來表示.

2^128-1: 0xffffffffffffffffffffffffffffffff

這種表示法仍然不是很方便. (因為這樣一長串看下來很容易就會混淆或遺漏了單個十六進制數字), 所以 IPv6 的設計者將地址形式定為每 16 位元就用 "冒號" 區分開來. 此外,開頭的 "0x"(在程式設計當中用來表示十六進制數值) 也被省略了:

2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

如此一來,一個可用的地址 (請參考之後提到的地址類型) 如下:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566

為了簡化,每個 16 位元區塊中高位元的 0 可以被省略:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566 -> ¬ 3ffe:ffff:100:f101:210:a4ff:fee3:9566

連續值為 0 的 16 位元位址區塊可以用 "::" 表示。但是在一個 IPv6 位址當中只能使用這種簡寫一次,否則就不再是唯一表示的位址了:

3ffe:ffff:100:f101:0:0:0:1 -> 3ffe:ffff:100:f101::1

簡化得最短的 IPv6 本地位址:

0000:0000:0000:0000:0000:0000:0000:0001 -> ::1

也有一種方法叫做簡潔 (compact, base85 coded) 表示法。定義於 RFC 1924 / IPv6 簡潔位址表示法 (定於 1996 年四月一日), 但從沒有被廣泛使用過,可能只是個愚人節笑話。但還是給個例子:

ipv6calc --addr_to_base85 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566

Itu&-ZQ82s>J%s99FJXT

資訊: ipv6calc 是一個 IPv6 地址格式的計算和轉換的計劃,您可以在 ipv6calc 首頁中找到: http://www.deepspace6.net/projects/ipv6calc.html 鏡像站: http://mirrors.bieringer.de/www.deepspace6.net/projects/ipv6calc.html