LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5580|回复: 20

各位兄弟,谁知道子网掩码的算法啊?

[复制链接]
发表于 2003-8-7 10:26:38 | 显示全部楼层 |阅读模式
我朋友好神奇,我跟他说了我的子网掩码,他就知道我有多少个IP了。所以我想因该有个运算的方法吧。我问那孙子,他也不告诉我。所以只有在这里问问了。我想这里的人才这么多因该会有人知道吧
发表于 2003-8-7 10:40:18 | 显示全部楼层
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。

最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。

请看以下示例:

运算演示之一:aa
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


运算演示之二:
I P 地址  192.168.0.254
子网掩码  255.255.255.0
AND运算

转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算

     11000000.10101000.00000000.00000000
转化为十进制后为:

      192.168.0.0


运算演示之三:
I P 地址  192.168.0.4
子网掩码  255.255.255.0
AND运算

转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算

     11000000.10101000.00000000.00000000
转化为十进制后为:

      192.168.0.0


  通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0

  所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。我现在单位使用的代理服务器,内部网络就是这样规划的。

也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。
根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:
  前三位IP码由分配下来的数字就只能固定为192.168.0  所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-1),即256-1=255一般末位为0或者是255的都有其特殊的作用。

那么你可能要问了:如果我的子网掩码不是255.255.255.0呢?你也可以这样做啊假设你的子网掩码是255.255.128.0

那么你的局域网内的ip地址的前两位肯定是固定的了(什么,为什么是固定的?你看上边不就明白了吗?·#¥)

这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器

1、十进制128 = 二进制1000 0000

2、IP码要和子网掩码进行AND运算

3、
I P 地址 00010000.01001001.1*******.********
子网掩码 11111111.11111111.10000000.00000000
AND运算

     00010000.01001001.10000000.00000000
转化为十进制后为:

      16 . 73 . 128 . 0

4、可知我们内部网可用的IP地址为:

00010000.01001001.10000000.00000000
       到
00010000.01001001.11111111.11111111

5、转化为十进制:

16.73.128.0 到 16.73.255.255

6、0和255通常作为网络的内部特殊用途。通常不使用。

7、于是最后的结果如下:我们单位所有可用的IP地址为:
192.168.128.1-192.168.128.254
192.168.129.1-192.168.129.254
192.168.130.1-192.168.130.254
192.168.131.1-192.168.131.254
. . . . . . . . . . . . .
192.168.139.1-192.168.139.254
192.168.140.1-192.168.140.254
192.168.141.1-192.168.141.254
192.168.142.1-192.168.142.254
192.168.143.1-192.168.143.254
. . . . . . . . . . . . .
192.168.254.1-192.168.254.254
192.168.255.1-192.168.255.254

8、总数为(255-128+1)*(254-1+1) =128 * 254 = 32512

FAINT!!!!@#!@把我们公司都买了还买不了这么多的机器呢!·¥!·#

9、看看的结果是否正确

  (1)、设定IP地址为192.168.128.1

    Ping 192.168.129.233通过测试

    访问http://192.168.129.233可以显示出主页

  (2)、设定IP地址为192.168.255.254

    Ping 192.168.129.233通过测试

    访问http://192.168.129.233可以显示出主页

10、结论

  以上证明我们的结论是对的。


现在你就可以看你的子网中能有多少台机器了

255.255.255.128
分解:
11111111.11111111.11111111.1000000
所以你的内部网络的ip地址只能是
xxxxxxxx.xxxxxxxx.xxxxxxxx.0???????

xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111

怎么样,这下你知道多少了吧?(还不知道?去小学去吧)

摘自:全方位下载
发表于 2003-8-7 11:02:36 | 显示全部楼层
把你的掩码换成2进制
比如255.255.255.0>>>>11111111.11111111.11111111.00000000
那么,最后的0的位数n,转换成n个1,就是00000000>>11111111
这个数字减2就是你的IP数量
减2是因为一个全0的网络地址,及一个全1的广播地址是不被分配的
 楼主| 发表于 2003-8-7 18:24:45 | 显示全部楼层
楼上的兄弟,问一下什么教AND运算,举个例子谢谢了.以前上课的时候大部分都在睡觉.唉~~~~~少壮不努力,老大图伤悲
发表于 2003-8-7 18:48:30 | 显示全部楼层

请问只给ip怎么算奄码?

电信只给让了一个IP,DNS我知道,打电话问掩码,服务台小姐让自己算算.

晕!!  好行能算但我不会.
发表于 2003-8-8 01:55:52 | 显示全部楼层
to wuchy1:
and 运算就是与运算啊
很容易看出规律来啊
1 and 1 结果为  1
1 and 0 结果为  0
0 and 0 结果为  0

to: 随风飘来

一般来说
电信都会用默认的掩码,那么,各类的掩码是:
A类:   255.0.0.0
B类:   255.255.0.0
C类:   255.255.255.0
那么,看一下你的IP是哪一类就可以了,各类的IP是这样分的:
A类:1.*.*.*  -126.*.*.*
B类:128.*.*.*-191.*.*.*
C类:192.*.*.*-223.*.*.*
知道哪一类以后,你就用那一类的默认掩码就可以了,估计是C的可能性比较大吧
 楼主| 发表于 2003-8-8 10:57:05 | 显示全部楼层
谢谢楼上的兄弟,明白了.谢谢
发表于 2003-8-8 23:44:59 | 显示全部楼层

十分感谢ata 兄的提醒!!

上面的兄弟的提醒很重要根据书上所讲的一样正确。
但是我还是有点不明白的是为什么ip为61.185.209.146可掩码为:255.255.255.252?
发表于 2003-8-8 23:55:05 | 显示全部楼层
不错的例子
发表于 2003-8-9 00:31:45 | 显示全部楼层
网上用关键字  netmask 收一下,n 多呀,有的还直接提供了 web 形式计算工具。

比较好的几个:
http://www.tactix.com/subnet.html
http://www.telusplanet.net/public/sparkman/netcalc.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表