急求CIDR的计算方法!

angelhyli 2007-03-24 10:50:21
急求CIDR的计算方法!

要求输入如192.168.3.6/24 或192.168.3.6/25,算出对应的IP段和共有多少个IP,并列出相应IP。
后面的位数从24开始的就可以了,也就是说只要算C类以后的即可。

非常感谢!!!
...全文
550 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
seulzp 2008-04-01
  • 打赏
  • 举报
回复
CIDR地址划分跟该减一把,一般的子网地址划分是减二把
CathySun118 2007-03-26
  • 打赏
  • 举报
回复
lz ,你是在数据库层计算?一般都是在业务层算的。

子网掩码的计算方法

一、利用子网数来计算

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1)将子网数目转化为二进制来表示

2)取得该二进制的位数,为 N

3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。

如欲将B类IP地址168.195.0.0划分成27个子网:

1)27=11011

2)该二进制为五位数,N = 5

3)将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到255.255.248.0,即为划分成 27个子网的B类IP地址 168.195.0.0的子网掩码。

二、利用主机数来计算

1)将主机数目转化为二进制来表示

2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。

3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

如欲将B(c)类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台(17):

1) 700=1010111100

2)该二进制为十位数,N = 10(1001)

3)将该B类地址的子网掩码255.255.0.0的主机地址全部置 1,得到255.255.255.255,然后再从后向前将后10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。

hcl8260 2007-03-26
  • 打赏
  • 举报
回复
不懂,帮顶
angelhyli 2007-03-26
  • 打赏
  • 举报
回复
有人能帮忙写个算法吗?谢谢了。
luckyprg 2007-03-26
  • 打赏
  • 举报
回复
楼上的资料比较详细了,如果你只需要24位以上的这个很简单。最多也就254个IP。
因为0是子网IP,255是广播地址。其他依次类推。
angelhyli 2007-03-25
  • 打赏
  • 举报
回复
to:hujun614(Softworm)
那你的意思是如果是192.168.3.6/25,则为2的(32-25)次方减2,即2^7-2=126?
hujun614 2007-03-25
  • 打赏
  • 举报
回复
不太明白对方的意思,一个网里IP的地址数应该可能的地址数-2,通常C网的 .0是网络地址,.255是广播地址,其它的IP都是可用地址,
IP可能的个数应该是 2的~子网掩码中1的个数次方,如通常C网子网掩码为 255.255.255.0,则
~子网掩码中有8个1,IP可能个数是256,减一个.0的网络地址,.255的广播地址,就是254个。
renjun24 2007-03-25
  • 打赏
  • 举报
回复
不懂,学习来了,帮顶吧,你能给我一分就不错了,谢谢!

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧