1、什么是IPV6?
这个问题可以去百度或Google找一下,应该会有很大的收获,其实主要就是为了解决IPV4地址不够用的问题,V4地址是32位,即:192.168.1.1,而V6地址则是128位,比V4扩大了太多倍。
2、IPV6有子网掩码吗?
可以说有,也可以说没有,说有呢,是因为在IPV6中有前缀的说法,它相当于IPV4中的子网掩码,只是名称不相同了;说没有呢,也可以,因为IPV6的地址实在是太大了,号称可以给地球上每个沙子一个地址,这样就淡化了子网的概念,不需要了。
3、IPV6的地址
IPV6地址写法在网上也可以查到很多很多,我就不详细列了,一般如下:1205::fff0:ffd1:1021/120,后面的120就是代表了前缀,相当于IPV4中的子网掩码。
4、IP地址的计算方式
IPV6和IPV4的网段计算方式一样,对于IPV4而言,如192.168.1.1/255.255.255.0,那么它的网段是从192.168.1.0~192.168.1.255,这个是怎么计算出来的呢"color: #ff0000">IPV6的网址写法上需要兼容零压缩法,因此需要对IPV6的网址进行转换,下面是JS的转换代码:
function transitIp(ipaddr)//将IPV6地址补全 { var ipaddress = ipaddr.split("/"); var ipaddrs = ipaddress[0].split(":"); if(ipaddrs.length<8) { var count = 0; for(var i=0;i<ipaddrs.length;i++) { if(ipaddrs[i]=="") { if(count==1) { ipaddrs[i] = addZero(4); continue; } ipaddrs[i] = addZero((9-ipaddrs.length)*4); count++; } else { ipaddrs[i] += ":"; } } } else if(ipaddrs.length==8) { for(var i=0;i<8;i++) { ipaddrs[i] += ":"; } } ////上述补齐完成,将内容放置于ipaddrs中,但不标准 return initaddr(ipaddrs);//获得了ip地址的完整字符串 } function addZero(num) { var zerostr = ""; for(var i=1;i<num+1;i++) { zerostr+="0"; if(i%4==0) { zerostr+=":"; } } return zerostr; } function initaddr(ipaddrs) { var iparray =""; for(var i=0;i<ipaddrs.length;i++) { iparray+=ipaddrs[i]; } if(iparray.charAt(iparray.length-1)==':') { iparray = iparray.substr(0,iparray.length-1); } //var iparrays = iparray.split(":"); //return iparrays; return iparray; }
IPV6地址判断的正则表达式为:
function isIPv6(str)//IPV6地址判断 { return /:/.test(str) &&str.match(/:/g).length<8 &&/::/.test(str) "color: #ff0000">接着我们说明下IPV4到IPV6的转换:IPV4到IPV6网址的转换很简单,只需将IPV4地址转为十六进制格式,以两段为一组,然后再前面添加::ffff即可
JS代码如下:
function four2six(fouraddr,fourmask)//IPV4转IPV6,包括地址和掩码 { var reg = fouraddr.match(/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/); if(reg==null) { alert("IP地址不正确!"); return; } if(fourmask.indexOf(".")!=-1) { reg = fourmask.match(/^(254|252|248|240|224|192|128|0)\.0\.0\.0$|^(255\.(254|252|248|240|224|192|128|0)\.0\.0)$|^(255\.255\.(254|252|248|240|224|192|128|0)\.0)$|^(255\.255\.255\.(255|254|252|248|240|224|192|128|0))$/); if(reg==null) { alert("子网掩码不正确!"); return; } } else { var mask = parseInt(fourmask, 10); if(mask<0 || mask > 32) { alert("子网掩码不正确!"); return; } } /*** IPV4转IPV6的方法很简单 1、先将其每段转为16进制 2、不足两位的前面添加0 3、V4一共会产生4个16进制数字,比前两个和后两个分别组合 4、地址前面加上"0000:0000:0000:0000:0000:ffff:"即可 **/ var sixtemp = ""; var fouraddrs = fouraddr.split("."); for (var i=0; i<fouraddrs.length; i++) { var addr4ip = parseInt(fouraddrs[i], 10); var addrtemp = addr4ip.toString(16); if(addrtemp.length==1) { addrtemp = "0" + addrtemp; } sixtemp += addrtemp; if(i==1) { sixtemp += ":"; } } //以上产生V6地址段正确 sixtemp = "0000:0000:0000:0000:0000:ffff:" + sixtemp; /*** 下面处理子网掩码,子网掩码可以有两种写法,数字或者255.255.255.0写法 1、第一种处理比较简单,只需此数值加96(128-32)即可 2、第二种需要分为四段,每段转为2进制,看哪一位最开始变为0 **/ var masktemp = 96; if(fourmask.indexOf(".")==-1) { masktemp += parseInt(fourmask); } else { var masks = fourmask.split("."); for ( var i=0; i<masks.length; i++) { var mask4ip = parseInt(masks[i], 10); var mask4temp = mask4ip.toString(2); if(mask4temp.length!=8) { for(var j=0;j<8-mask4temp;j++) { mask4temp = "0"+mask4temp; } } //下面判断位置 var flagtemp = false; for(var j=0;j<8;j++) { if(mask4temp.charAt(j)=='0') { flagtemp = true; masktemp += i*8 + j; break; } if(j==7&&i==3) { flagtemp = true; masktemp = 128; break; } } if(flagtemp) { break; } } } return sixtemp + "/" + masktemp; } function four2sixip(fouraddr)//IPV4转IPV6,只转地址 { var reg = fouraddr.match(/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/); if(reg==null) { alert("IP地址不正确!"); return; } var sixtemp = ""; var fouraddrs = fouraddr.split("."); for (var i=0; i<fouraddrs.length; i++) { var addr4ip = parseInt(fouraddrs[i], 10); var addrtemp = addr4ip.toString(16); if(addrtemp.length==1) { addrtemp = "0" + addrtemp; } sixtemp += addrtemp; if(i==1) { sixtemp += ":"; } } //以上产生V6地址段正确 sixtemp = "0000:0000:0000:0000:0000:ffff:" + sixtemp; return sixtemp; }当然在上面的方法中包含了,对IPV4地址和掩码的正则判断,支持掩码以255.255.255.0的形式以及/32的形式两种。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月20日
2024年11月20日
- 群星《2024好听新歌38》AI调整音效【WAV分轨】
- 台湾荷东《周末狂热1》[WAV+CUE][1.1G]
- 群星《Hi.Fi.怀旧金曲.Vol.1》[低速原抓WAV+分轨][996M]
- 汪峰 白金超精选《生来彷徨2CD》[WAV+CUE][1.5G]
- 孙露《寂寞撩人》限量1:1母盘直刻低速原抓[WAV+CUE]
- 20世纪伟大的钢琴家《盖扎·安达》2CD[WAV分轨]
- 龚玥《微风拂面HQCD》[低速原抓WAV+CUE]
- 群星《新说唱2024 第12期 (上)》[320K/MP3][117.13MB]
- 群星《新说唱2024 第12期 (上)》[FLAC/分轨][626.34MB]
- 彦希《Golden Blue》[320K/MP3][111.78MB]
- 中岛美雪《美雪集原曲流行极品》[正版原抓WAV+CUE]
- 【古典音乐】《最优美的格里格音乐作品》2CD[FLAC+CUE/整轨]
- 中央乐团《春芽(63首世界名曲联奏)》APE
- 彦希《Golden Blue》[FLAC/分轨][587.25MB]
- 群星《我们的歌第六季 第1期》[320K/MP3][90.72MB]