做自动隧道时经常会遇到IPV4和IPV6地址之间互相转换,转换方式如下:
IPv4为4位点分十进制,一共32bits,IPv6为16进制表示,若要进行转化,只需要使用10进制和16进制之间算法进行;
16进制:0123456789ABCDEF
算法:
IPv4转化为IPv6:
1、192.168.1.1,每一位除16,得商和余数,192除16的商为前4its,余数为后4bits,依次类推
例如:
192/16=12余0,可表示为16进制C0
168/16=10余8,可表示为16进制A8
1/16=0余1,可表示为01
所以IPV4地址192.168.1.1转化为IPv6地址为:C0A8:0101(前缀可按要求自行添加)
2、举例172.20.190.226转化为IPv6地址
172/16=10余12 表示为AC
20/16=1余4 表示为14
190/16=11余14 表示为BE
226/16=14余2 表示为E2
最后172.20.190.226可表示为16进制32bits:AC14:BEE2
IPV6转化为IPV4则可反推:
比如:874B:2B34转化为IPv4地址,因为IPv4地址可用点分十进制表示,则:
8*16+7=135
4*16+11=75
2*16+11=43
3*16+4=52
最后可转为IPv4地址:135.75.43.52