1. 程式人生 > >IPV6到IPV4的轉換

IPV6到IPV4的轉換

轉換 實現 進制轉化 style 做了 兼容 今天 表示 baidu

參考: http://blog.csdn.net/chenjhit/article/details/70224531

由於ipv4到ipv6之間有一個漫長的過渡過程,因此,需要將ipv6兼容ipv4或者映射為ipv4。
在兼容情況下:如果ipv4表示為“X.X.X.X”,那麽對應的ipv6即為“::X.X.X.X”(高位補零)
在映射情況下:如果ipv6表示為“::FFFF:X.X.X.X”(33-128位為::FFFF),這類情況下的ipv6將會被映射為ipv4,使用java.net.InetAddress包中的InetAddress.getByName(str)方法將自動實現映射

今天筆試做了一個這個題,第一次,見一臉懵逼。
現在查了下大概知道怎麽轉換了,比如:將ipv4 192.168.99.1 轉成 ipv6
其實就是將十進制轉化成十六進制:
192/16=12余0 → C0 ; 168/16=10余8 → A8;
99/16=6余3→63;1/16=0余1→01
合起來就是: C0A8:6301
反過來也是如此,
Step1 > ((C=12)*16) + (0*1) = 192
Step2 > ((A=10)*16) + (8*1) = 168
Step3 > (6*16) + (3*1) = 99
Step4 > (0*16) + (1*1) = 1

IPV6到IPV4的轉換