社区
网络编程
帖子详情
100分~求一ip掩码的算法
fiter2004
2006-06-22 11:08:02
如ip段:2.2.2.2-2.2.2.8可以拆分成2.2.2.2/31 2.2.2.4/30 2.2.2.8/32三个掩码格式,现求任意ip段拆分成如上掩码格式的算法~
谢谢
...全文
180
8
打赏
收藏
100分~求一ip掩码的算法
如ip段:2.2.2.2-2.2.2.8可以拆分成2.2.2.2/31 2.2.2.4/30 2.2.2.8/32三个掩码格式,现求任意ip段拆分成如上掩码格式的算法~ 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fiter2004
2006-06-26
打赏
举报
回复
谢了
hijack
2006-06-23
打赏
举报
回复
程序没错,你试就知道了(第3行是unsigned int i)
使用的时候要把IP转成int,如ip2.2.2.2转成0x02020202,ip2.2.2.8转成0x02020208
计算后再把int转换成IP格式,
fiter2004
2006-06-23
打赏
举报
回复
不好意思,可能我还没说清楚,我要的是精确的ip段的掩码,2.2.2.2的8位二进制最后一个2表示为0000 0010,
如果掩码为/28(最后8位11110000),则表示的ip段是2.2.2.0-2.2.2.15,超出了所要求的2.2.2.2-2.2.2.8范围
如果掩码为/29(最后8位11111000),则表示的ip段是2.2.2.0-2.2.2.7,也不在范围内
掩码/30(最后8位11111100),则是2.2.2.0-2.2.2.3也是不对的
所以只能分成多个掩码表示,就像上边说的
2.2.2.2/31(11111110)包含2.2.2.2和2.2.2.3两个ip,
2.2.2.4/30(11111100)包含2.2.2.4-2.2.2.7四个ip,
2.2.2.8/32(11111111)代表2.2.2.8本身
hijack
2006-06-22
打赏
举报
回复
现写了一段,计算32位数掩码,IP转换成unsigned int即可
unsigned int n1 = 2;
unsigned int n2 = 8;
for (int i = n1; i <= n2; ) {
unsigned int nShift, nMask, nDelta;
for (unsigned int k = 0; k < 32; k++) {
unsigned int ns = k;
unsigned int nm = i & (0xffffffff << ns);
unsigned int nd = 1 << ns;
if (i != nm || i + nd - 1 > n2) break;
nShift = ns;
nMask = nm;
nDelta = nd;
}
cout << nMask << "/" << 32 - nShift << endl;
i = i + nDelta;
}
nuaawenlin
2006-06-22
打赏
举报
回复
掩码是从主机地址分离出子网的地址
所以需要判断你的ip属于那一类,然后得到主机地址的长度,然后得到掩码的长度
DentistryDoctor
2006-06-22
打赏
举报
回复
拔码的长度,从左往右数,是多少就有多少个二进制的1,
oyljerry
2006-06-22
打赏
举报
回复
本来掩码长度就决定了地址段的范围
fiter2004
2006-06-22
打赏
举报
回复
是否表述不够清楚,ip掩码可以表示可以用/24等形式,如2.2.2.0-2.2.2.255,可以表示为2.2.2.0/24,代表包含所有2.2.2.x网段的ip,但如上边的2.2.2.2-2.2.2.8这个ip段,无法只用一个/24之类的掩码精确表示,须划分为多个掩码:
2.2.2.2/31包含2.2.2.2和2.2.2.3两个ip,
2.2.2.4/30包含2.2.2.4-2.2.2.7四个ip,
2.2.2.8/32代表2.2.2.8本身
我想要的是求任意一个ip段如何划分掩码的算法~
希望各位大虾帮忙~~~
IP
地址及子网
掩码
本文介绍了
IP
地址和子网
掩码
相关知识。
IP
地址用于唯一标识网络或主机,有32位二进制数,
分
A、B、C等几类。子网
掩码
与
IP
地址结合,用于区
分
网络地址和主机地址。此外,还阐述了子网划
分
的作用及案例,如公司部门子网划
分
、特定
IP
地址的子网号等计算。
IP
地址,子网
掩码
以及子网
掩码
的划
分
本文详细介绍了
IP
地址的组成及
分
类,探讨了有类与无类
IP
地址的区别,并深入解析了子网
掩码
的工作原理及其在
IP
地址划
分
中的应用。
计算机网络·计算子网地址,子网
掩码
,广播地址,根据子网
掩码
求网络地址详解
本文详细介绍了
IP
地址的
分
类,子网
掩码
的计算,以及如何根据子网
掩码
求网络地址。通过实例展示了如何将一个B类网络划
分
为四个子网,并计算每个子网的地址、子网
掩码
和广播地址。
IP
、网关、端口、网段、子网
掩码
概念区别
本文介绍了
IP
、网关、端口、子网
掩码
和网段等网络概念。
IP
是给Internet上电脑的编号,网关用于不同网络互连,端口与
IP
结合区
分
不同服务,子网
掩码
分
离
IP
地址的网络和主机部
分
,同一网段要求
IP
和子网
掩码
相与得到相同网络地址。
网络号
IP
地址 子网
掩码
如何计算
本文深入解析了
IP
地址的基本概念,包括A、B、C类地址的特点、默认子网
掩码
及如何计算网络地址、广播地址等内容。
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章