子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码的作用
通过 IP 地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网络地址和主机号,也就是说通过子网掩码分辨一个网络的网络部分和主机部分。子网掩码一旦设置,网络地址和主机地址就固定了。子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:1111 1111、1111 1111、1111 1111、0000 0000,采用十进制的形式为:255.255.255.0。
网掩码的表示方法 子网掩码通常有以下2种格式的表示方法:
1. 通过与IP地址格式相同的点分十进制表示
如:255.0.0.0 或 255.255.255.128
2. 在IP地址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度
如:192.168.1.1/24 的子网掩码也可以表示为 255.255.255.0
StringBuffer sbf;
String str;
String strip= "255.255.255.0"; //子网掩码
int inetmask=0,count=0; //子网掩码缩写代码
def ipList=strip.split('//.');
for(int n=0;n
{
sbf = toBin(Integer.parseInt(ipList[n]));
str=sbf.reverse().toString();
println(ipList[n]+"---"+str);
//统计2进制字符串中1的个数
count=0
for(int i=0;i
i=str.indexOf('1',i); //查找 字符'1'出现的位置
if(i==-1){break;}
count++; //统计字符出现次数
}
inetmask+=count;
}
println "子网掩码缩写代码:"+inetmask;
StringBuffer toBin(int x)
{
StringBuffer result=new StringBuffer();
result.append(x%2);
x/=2;
while(x>0){
result.append(x%2);
x/=2;
}
return result;
}