首页 > 编程知识 正文

网址转换json格式在线转换,url格式转换普通网址

时间:2023-05-04 18:48:53 阅读:273739 作者:3893

用于PON设置ipv6 Pool范围时,校验ipv6 Pool范围是否为设置的ipv6前缀的子集
前提:ipv6地址格式合法(图中1、2格式)

化简原则:
+全0块“0000”,可以化简为“0”
+多个全0块,可以化简为“::”
+一个IPv6地址中只能出现一个“::”,出现多个全0块时,“::”要化简最长的一段,没有最长的要就近(左)
+“::”可以出现在地址开头或结尾

CompareAddrPoolRange("3001::","3001::1111:111");function CompareAddrPoolRange(Prefix,ipv6Addr){//对比前缀与地址池起始地址前缀是否相同 var addr_1 = Prefix.split("/"); var addr_2 = ipv6Addr.split("/"); var prefix = addr_1[0]; var ipv6addr = addr_2[0]; var prefix_fomart = convert2CompleteIpV6(prefix).substring(0,19); var prefix_ipv6 = convert2CompleteIpV6(ipv6addr).substring(0,19); console.log(prefix_fomart); console.log(prefix_ipv6); if(prefix_fomart != prefix_ipv6){ return false; } return true;}//ipv6地址去简化function convert2CompleteIpV6(ip){//将3001::1111:111拓展为3001:0000:0000:0000:0000:1111:111 var ipV6 = ip; var ipv6Address; var index = ip.indexOf("::"); if(index > 0){ var size = 8-(ipV6.split(":").length-1); var tmp = ""; for(var i = 0; i < size; i++){ tmp += ":0000"; } tmp += ":"; ipV6 = ip.replace("::",tmp); } else if(index == 0){ if(ip == "::"){ ipV6 = "0000:0000:0000:0000:0000:0000:0000:0000"; } else{ ipV6 = ip.replace("::","0000:0000:0000:0000:0000:0000:0000:"); } } ipv6Address = ipv6AddrFormart(ipV6); return ipv6Address; }ipv6地址标准格式化function ipv6AddrFormart(ipV6){ //将3001:0000:0000:0000:0000:1111:111格式化3001:0000:0000:0000:0000:0000:1111:0111 var ipv6Address = null; var parts = ipV6.split(":"); for(var i = 0; i < parts.length; i++){ if(parts[i].length < 4){ parts[i] = parts[i].padStart(4,'0'); } if(i == 0){ ipv6Address = parts[i]; }else{ ipv6Address += ":" + parts[i]; } } return ipv6Address;} 参考:https://www.cnblogs.com/fps2tao/p/10766422.htmlhttps://blog.csdn.net/weixin_30853329/article/details/98959974

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。