CIDR表示的IP地址段解析
比较常见的/8掩码是A类,/16掩码是B类,/24掩码是C类,这些事比较常见的,不太常见的/12、/18、/25掩码就是我们今天要说的CIDR无类别域间路由。
举例:IP号段是125.203.96.0 - 125.203.127.255,转换成CIDR格式是多少?
解析:转换为CIDR就是找相同部分,把十进制数转换成二进制数,例如125.203.96.0 - 125.203.127.255,相同的忽略不计,把不同的数字转换成二进制,然后找相同的位数:
IP号段:125.203.96.0 - 125.203.127.255
转成二进制:125.203.0110 0000.0000 0000 - 125.203.0111 1111.1111 1111
function repair(n,v){
let str='';
for(let i=0;i<(n-v.toString().length);i++){str+='0'}
return `${str}${v}`
}
function iptoString(str){
let arr=str.split(".");
let strs="";
for(let i=0;i<arr.length;i++){
let pt2=parseInt(arr[i]).toString(2);
let s=repair(8,pt2);
strs+=s
}
return strs;
}
function ipToCIDR(ipA,ipB){
let nn=0;
let A=iptoString(ipA);
let B=iptoString(ipB);
console.log(`${A}=${ipA}`);
console.log(`${B}=${ipB}`);
for(let i=0;i<A.length;i++){
if(A[i] === B[i]){
nn++;
}else{
break;
}
}
return `${ipA}/${nn}`;
}
let doc=ipToCIDR('125.203.96.0','125.203.127.255')
console.log(doc);
输出结果是:
01111101110010110110000000000000=125.203.96.0
01111101110010110111111111111111=125.203.127.255
125.203.96.0/19

本文介绍了如何将IP地址段125.203.96.0-125.203.127.255转换为CIDR格式。通过将IP地址转换为二进制形式,并找出共同前缀来确定CIDR掩码长度,最终得出CIDR表示为125.203.96.0/19。
1635

被折叠的 条评论
为什么被折叠?



