首页 > 提供起始IP和终止IP可否计算出掩码?

提供起始IP和终止IP可否计算出掩码?

假设数据为:

0.0.0.0 ^ 0.255.255.255   IANA 保留地址
1.0.0.0 ^ 1.0.0.255       澳大利亚 亚太互联网络信息中心
1.0.1.0 ^ 1.0.3.255       福建省 电信
1.0.4.0 ^ 1.0.7.255       澳大利亚 墨尔本Goldenit有限公司
1.0.8.0 ^ 1.0.15.255      广东省 电信
1.0.16.0 ^ 1.0.31.255      日本 东京I2Ts Inc

如何得到类似0.0.0.0 ^ 0.255.255.255中的掩码呢?这一块该如何计算?


得不到准确的掩码,因为并不清楚这个网段的子网划分情况;

以“1.0.1.0 1.0.3.255 福建省 电信”为例:
划分为1.0.1.0/24; 1.0.2.0/24; 1.0.2.0/24三个网段的话,子网掩码就是255.255.255.0
或者极端情况下划分为两个网段 1.0.1.0/24;1.0.2.0/23(CIDR写法,23为255.255.254.0,24为255.255.255.0);

根据ip范围猜子网掩码的方法:先猜网段号,(二进制表示)把网段号对应的子网掩码位置1;其余为机器号,子网掩码号置0
以1.0.2.0/23为例:
最小IP:000000001.00000000.0000001 0.00000000->1.0.2.0 (机器号全为0的ip为网段号)
最大IP:000000001.00000000.0000001 1.11111111->1.0.3.255(机器号全为1的ip为广播地址)

    |----------网段号---------| |--机器号--|  

MASK: 111111111.11111111.1111111 0.00000000->255.255.254.0

参考:
http://www.rfc-editor.org/rfc/rfc1519.txt
https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing


子网掩码不是对单个IP而言的,而是对一个访问域的IP而言的,简单的说,就是标记一个主机所在的子网域。
比如,对于某个主机地址是:192.168.1.20的主机,当它的子网掩码为255.255.255.0的时候,就表示它在192.168.1.0192.168.1.255这个范围的子网中,所以它也就能识别同在这个子网的主机。

子网掩码和IP都是独立的概念,所以不存在根据IP计算掩码这种说法,而应该是根据子网域来确定掩码。比如你想要设立一个子网,IP段为10.10.0.010.10.255.255,这里面共65536个IP地址,32位的16进制表示为0x0000FFFF,取反为0xFFFF0000,这个就是这个子网的掩码,数字表示为255.255.0.0

怎么去识别两个主机的IP是否在一个掩码中呢?很简单,将两个IP与掩码做个与操作:IP & 子网掩码,如果两个结果一致,则表示两个主机在一个子网中。


基本是异或再取反 比如1.0.0.0 ^ 1.0.0.255 -> 0.0.0.255 -> 255.255.255.0
如果得到的是一个子网掩码就到此为止

但是你给的一些范围是不能用一个子网来表示的
比如1.0.1.0 ^ 1.0.3.255 -> 0.0.2.255
这个范围其实是2个子网: 1.0.1.0/255.255.255.01.0.2.0/255.255.254.0

【热门文章】
【热门文章】