IP地址计算

Posted lhy55

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP地址计算相关的知识,希望对你有一定的参考价值。

在计算此之前我们应该熟悉2从0到的8的各次幂时多少。如下表:
结果 128 64 32 16 8 4 2 1 
2 的幂次 7 6 5 4 3 2 1 0


如对划分子网数的划分,如要划分四个子网,每个子网中有58台主机,这是可以选择一个 主机位有六位的C类地址,因为2的6次幂为64,最接近58,所以你可以用剩下的28位作网络位,


对于一个带子网掩码的IP地址的网络地址的计算,应是用IP地址的二进制形式和子网掩码的二进制形式做相与运算,其结果即是改地址所在的子网网络地址。如:
I P 地址  192.168.0.1
子网掩码  255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算
     11000000.10101000.00000000.00000000
转化为十进制后为:
      192.168.0.0
即192.168.0.1 255.255.255.0所在的子网地址是192.168.0.0


子网掩码和子网中主机数的计算:

当知道一个网络地址和要求划分的子网个数时,可以先确定其网络位的位数,再从其网络位的位数得知其主机位的位数,从而我们可以进一步得出每个网络中的主机个数,由于所有位都是2的倍数,所以各个子网中的主机号可以累加计算,举例说明:

例子一:

已知网络地址为211.134.12.0,要有4个子网,求子网掩码及各个主机块。
由4个子网可知,网络位的大小最小应为8,因为若为4时去掉全0和全1的网络位,只有2个子网可用,并不满足要求。网络位大小位8即意味着网络位有3位,对于地址211.134.12.0来说,它是一个C类地址,那剩下的主机位应为8-3=5位。从数学上讲即有2的5次幂,共有32个主机,这是每个子网中的主机数,但去掉全0的本地网络和全1的广播地址,每个子网实际可以分配的主机个数时30个。对于子网的个数来说,共有2的3次幂减2个,共6个子网,若我们把这八个子网分别用0~7标识,主机用0~255标识一下可知:

子网代码 网络位 主机位范围 子网中的主机块范围
子网0 000 000 00000~000 11111 0~31 (本地网络,应去除)
子网1 001 001 00000~001 11111 32~63
子网2 010 010 00000~010 11111 64~95
子网3 011 011 00000~011 11111 96~127
子网4 100 100 00000~100 11111 128~159
子网5 101 101 00000~101 11111 160~191
子网6 110 110 00000~110 11111 192~223
子网7 111 111 00000~111 11111 224~255 (子网广播,应去除)


除去网络位中和主机位中全0和全1的地址,实际可以应用的地址是:


子网代码 网络位 主机位范围 子网中的主机块范围
子网1 001 001 00001~001 11110 33~62
子网2 010 010 00001~010 11110 65~94
子网3 011 011 00001~011 11110 97~126
子网4 100 100 00001~100 11110 129~158
子网5 101 101 00001~101 11110 161~190
子网6 110 110 00001~110 11110 193~222


而我们根据子网掩码的定义可知,其作用是用来划分子网的,所以其子网掩码可表示为211.134.12.X,其中X是网络位的大小,即二进制的111,十进制的224,所以子网掩码是211.134.12.224。其实我们由每个二进制位组的大小都是256可知,用256减去每个子网中的主机数(主机块)即得掩码的数值。在此例中是用256减去32即得224。


通过对以上的关系的总结可以得到如下关系的表示:
(1) 子网掩码=256-每个子网可分配的IP地址块大小
(2) 每个子网可分配的IP地址块大小=256/可分配子网块大小
(3) 可分配子网块大小=256/I每个子网可分配的IP地址块大小
(4) 每个子网实际可分配的IP地址数=每个子网可分配的IP地址块大小-2
(5) 可分配子网数=可分配子网块大小-2
其实从上例中可以知道每个子网的网络地址就是其子网中的主机块范围中第一个主机的地址,而每个子网的广播地址就是其子网中的主机块范围中最后一个主机的地址,如子网3中,其网络地址就是主机位96主机的地址,而其子网的广播地址就是其子网中的主机位是127的主机地址。当然我们在实际计算时可以利用其2的倍数的性质用加法进行计算。如我们算出每个子网的主机数是32时,即可知第一个子网范围是0~31;第二个子网的第一个主机是32,而最后一个是在第一个子网的最后一个主机31的基础上再加32,即31+32=63,第二个子网的范围即是32~63;第三个子网的第一个主机是64,而最后一个是在第一个子网的最后一个主机63的基础上再加32,即63+32=95,第三个子网的范围即是64~95。依次类推,第四个、第五个··· ···而如此计算出的子网中的主机范围还不能用,因为还要除去每个子网中的主机块的第一个和最后一个地址,即第一个子网是0和31,第二个子网是32和63,第三个子网是64和95,其中前面小的那个是本地的网络地址,后面大的是本地的广播地址。
其实每个子网中的本地的网络地址必然是一偶数(因为要全0,最后一位为0确定了这个值是偶数),每个子网中的本地的广播地址必然是一奇数(因为要全1,最后一位为1确定了这个值是奇数);同时每个子网中的第一个可用的地址是其网络地址加1(因其网络地址为偶,所以其第一个可用的地址必为奇数),每个子网中的最后一个可用的地址是其广播地址减1(因其广播地址为奇,所以其最后一个可用的地址必为偶数),且它们必定两两相邻,即    第n-1个子网的网络地址 - 第n-1个子网中第一个可用的地址………第n-1个子网中最后一个可用的地址 - 第n-1个子网的广播地址 —— 第n个子网的网络地址-第n个子网中第一个可用的地址…….…第n个子网中最后一个可用的地址 - 第n个子网的广播地址 —— 第n+1个子网的网络地址 - 第n+1个子网中第一个可用的地址………第n+1个子网中最后一个可用的地址 - 第n+1个子网的广播地址……

例子二:

一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?
  首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。
  2的m次方=560
  首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。

以上是关于IP地址计算的主要内容,如果未能解决你的问题,请参考以下文章

.net中如何获得计算机IP地址?

同一台计算机的局域网ip地址会变吗

IP地址的计算

计算机网络IP地址

计算机网络IP地址

计算机网络IP地址