IPv6めも === ## IPv6アドレスの正規化 RFC5952(A Recommendation for IPv6 Address Text Representation)にて定義されている。 http://www.slideshare.net/koyhoge/ipv6php に分かり易いスライドがある。 これによると以下の通りの実装となる。 - フィールド内の0省略 - 各フィールドの"0"は省略できる 2001:0db8 -> 2001:db8 - "::"による省略 * 0000を::で省略できる * 連続した0000は::で省略できる * 「一番省略できる」ところを省略すること * 2か所以上あるなら一番前の方を省略 - 大文字小文字? - 小文字 ## how to IPv6アドレスのプレーン化 ``` #php -r "echo bin2hex(inet_pton('ff02::1'));" ff020000000000000000000000000001 ``` ## ipv6calcを使いIPv6アドレスをplain表示/正規化する ``` ipv6calc --showinfo -q -m 2001:db8::1 | grep "^IPV.=" | cut -d '=' -f2 > 2001:0db8:0000:0000:0000:0000:0000:0001 ipv6calc --showinfo -q -m 192.168.0.1 | grep "^IPV.=" | cut -d '=' -f2 > 192.168.0.1 ipv6calc -q 2001:db8::1 > 2001:db8::1 ipv6calc -q 2001:0db8:0000:0000:0000:0000:0000:0001 > 2001:db8::1 ipv6calc -q 192.168.000.1 ```