我是靠谱客的博主 鲜艳抽屉,最近开发中收集的这篇文章主要介绍ip4转ip6,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

public static void main(String[] args) {
String ip4="192.168.0.168";//是由十进制组成(32位二进制组成)
String ip6="";
//ip6一般是有8组数的16进制数组成-(128位二进制组成)
//::代表前面的数全部是0
//ip4已经是32位了,在它前面再加上96位二进制就变为了ip6地址格式了,所以ip6的前96位全部可以为0表示也就是(::)
String ip1="::192.168.0.168";//现在只需把192.168.0.168变为16进制即可--ip6地址每个冒号间是一个16位的二进制,而ip4一个点号之间是八位的二进制数,所以两个逗号变为一个冒号
//变为如下格式
String ip2="::[192][168]:[0][168]";//现在只需要把中括号的变为十六进制就可以了
String str1="";//为[192][168]的十六进制
String str2="";//为[0][168]的十六进制
String [] arrayIp=ip4.split("\.");//
if(arrayIp!=null && arrayIp.length>0){
for(int i=0;i<arrayIp.length;i++){
if(i==0){
int sz=Integer.parseInt(arrayIp[i]);
if(sz==0){
str1="00";
}else if(0<sz && sz<16){
if(0<(sz%16) && (sz%16)<=9){
str1="0"+sz;
}else{
if(sz==10){
str1="0A";
}else if(sz==11){
str1="0B";
}else if(sz==12){
str1="0C";
}else if(sz==13){
str1="0D";
}else if(sz==14){
str1="0E";
}else if(sz==15){
str1="0F";
}
}
}else{
String a0="";//前一个数
String a1="";//后一个数
//因为ip4最大的数字是0-255
a0=(sz/16)+"";//第一个数等于除数
a1=(sz%16)+"";//第二个数等于余数
if("10".equals(a0)){
a0="A";
}else if("11".equals(a0)){
a0="B";
}else if("12".equals(a0)){
a0="C";
}else if("13".equals(a0)){
a0="D";
}else if("14".equals(a0)){
a0="E";
}else if("15".equals(a0)){
a0="F";
}
if("10".equals(a1)){
a0="A";
}else if("11".equals(a1)){
a0="B";
}else if("12".equals(a1)){
a0="C";
}else if("13".equals(a1)){
a0="D";
}else if("14".equals(a1)){
a0="E";
}else if("15".equals(a1)){
a0="F";
}
str1=a0+a1;
}
}else if(i==1){
int sz=Integer.parseInt(arrayIp[i]);
if(sz==0){
str1=str1+"00";
}else if(0<sz && sz<16){
if(0<(sz%16) && (sz%16)<=9){
str1=str1+"0"+sz;
}else{
if(sz==10){
str1=str1+"0A";
}else if(sz==11){
str1=str1+"0B";
}else if(sz==12){
str1=str1+"0C";
}else if(sz==13){
str1=str1+"0D";
}else if(sz==14){
str1=str1+"0E";
}else if(sz==15){
str1=str1+"0F";
}
}
}else{
String a0="";//前一个数
String a1="";//后一个数
//因为ip4最大的数字是0-255
a0=(sz/16)+"";//第一个数等于除数
a1=(sz%16)+"";//第二个数等于余数
if("10".equals(a0)){
a0="A";
}else if("11".equals(a0)){
a0="B";
}else if("12".equals(a0)){
a0="C";
}else if("13".equals(a0)){
a0="D";
}else if("14".equals(a0)){
a0="E";
}else if("15".equals(a0)){
a0="F";
}
if("10".equals(a1)){
a0="A";
}else if("11".equals(a1)){
a0="B";
}else if("12".equals(a1)){
a0="C";
}else if("13".equals(a1)){
a0="D";
}else if("14".equals(a1)){
a0="E";
}else if("15".equals(a1)){
a0="F";
}
str1=str1+a0+a1;
}
}else if(i==2){
int sz=Integer.parseInt(arrayIp[i]);
if(sz==0){
str2="00";
}else if(0<sz && sz<16){
if(0<(sz%16) && (sz%16)<=9){
str2="0"+sz;
}else{
if(sz==10){
str2="0A";
}else if(sz==11){
str2="0B";
}else if(sz==12){
str2="0C";
}else if(sz==13){
str2="0D";
}else if(sz==14){
str2="0E";
}else if(sz==15){
str2="0F";
}
}
}else{
String a0="";//前一个数
String a1="";//后一个数
//因为ip4最大的数字是0-255
a0=(sz/16)+"";//第一个数等于除数
a1=(sz%16)+"";//第二个数等于余数
if("10".equals(a0)){
a0="A";
}else if("11".equals(a0)){
a0="B";
}else if("12".equals(a0)){
a0="C";
}else if("13".equals(a0)){
a0="D";
}else if("14".equals(a0)){
a0="E";
}else if("15".equals(a0)){
a0="F";
}
if("10".equals(a1)){
a0="A";
}else if("11".equals(a1)){
a0="B";
}else if("12".equals(a1)){
a0="C";
}else if("13".equals(a1)){
a0="D";
}else if("14".equals(a1)){
a0="E";
}else if("15".equals(a1)){
a0="F";
}
str2=a0+a1;
}
}else if(i==3){
int sz=Integer.parseInt(arrayIp[i]);
if(sz==0){
str2=str2+"00";
}else if(0<sz && sz<16){
if(0<(sz%16) && (sz%16)<=9){
str2=str2+"0"+sz;
}else{
if(sz==10){
str2=str2+"0A";
}else if(sz==11){
str2=str2+"0B";
}else if(sz==12){
str2=str2+"0C";
}else if(sz==13){
str2=str2+"0D";
}else if(sz==14){
str2=str2+"0E";
}else if(sz==15){
str2=str2+"0F";
}
}
}else{
String a0="";//前一个数
String a1="";//后一个数
//因为ip4最大的数字是0-255
a0=(sz/16)+"";//第一个数等于除数
a1=(sz%16)+"";//第二个数等于余数
if("10".equals(a0)){
a0="A";
}else if("11".equals(a0)){
a0="B";
}else if("12".equals(a0)){
a0="C";
}else if("13".equals(a0)){
a0="D";
}else if("14".equals(a0)){
a0="E";
}else if("15".equals(a0)){
a0="F";
}
if("10".equals(a1)){
a0="A";
}else if("11".equals(a1)){
a0="B";
}else if("12".equals(a1)){
a0="C";
}else if("13".equals(a1)){
a0="D";
}else if("14".equals(a1)){
a0="E";
}else if("15".equals(a1)){
a0="F";
}
str2=str2+a0+a1;
}
}

}
}
ip6="::"+str1+":"+str2;
}

最后

以上就是鲜艳抽屉为你收集整理的ip4转ip6的全部内容,希望文章能够帮你解决ip4转ip6所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部