以前在南京嘉环面试遇到的一个笔试题,具体题目我忘了,当初没写对,哈哈~下面是从百度知道找的一个例题,貌似还是大学课本上的

题目

已知172.31.128.255/18,试计算:子网数目、网络号、主机号、广播地址、可分配IP的起止范围。

地址分类

解:

  1. 算子网数目
    首先将/18换成为我们习惯的表示法
    11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16位(16个0)来表示可分配的IP地址,本题中的掩码在B类默认掩码的基础上多出了两个表示网络号的1,这就是说是将B类大网划分为(11)2进制个子网,将(11)2进制转换为十进制就是4,所以本题中是将B类大网划分为4个子网。

  2. 算网络号
    用公式:将IP地址的二进制和子网掩码的二进制进行“与”(and)运算,得到的结果就是网络号。“与运算”的规则是1和1得1,0和1得0,1和0得0。
    172.31.128.255转为二进制是:10101100.00011111.10000000.11111111,掩码是:11111111.11111111.11000000.00000000
    所以:
    10101100.00011111.10000000.11111111
    11111111.11111111.11000000.00000000
    10101100.00011111.10000000.00000000
    将10101100.00011111.10000000.00000000
    转换为十进制就是172.31.128.0,所以网络号是172.31.128.0

  3. 算主机号
    也用公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“与”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。由于掩码是:11111111.11111111.11000000.00000000
    所以其反码表示为:00000000.00000000.00111111.11111111,再将IP地址的二进制和掩码的反码表示法进行“与”运算:
    10101100.00011111.10000000.11111111
    00000000.00000000.00111111.11111111
    00000000.00000000.00000000.11111111
    将00000000.00000000.00000000.11111111转换为十进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表示网络号再加上255就是这个IP地址了。

  4. 算广播地址
    也用公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000,网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,我们将网络号172.31.128.0,转换为二进制是10101100.00011111.10000000.00000000,然后从右边数起,将14个0全部替换为1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是172.31.191.255。

  5. 算可用IP地址范围
    因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 到
    广播地址-1,所以子网中的可用IP地址范围就是从 172.31.128.1-172.31.191.254。


Never give up your dreams.