如何使用C ++将ipaddress / mask转换为CIDR?

尚普

我有一个ipaddress / mask列表,需要将其转换为CIDR表示法。

对于例如12.174.36.240/24需求转换为12.174.36.0/24或类似的东西是什么http://www.subnet-calculator.com/cidr.php

如何做到这一点?

PS:掩码值不总是24。

艾略特·罗宾逊(Elliot Robinson)

只是为了引导您朝正确的方向前进,请考虑什么是IPv4地址(32位整数)。现在,考虑什么是掩码(按位操作中使用的位字段)。

在big-endian系统上使用地址127.0.0.1。以十六进制表示0x7f00000124位掩码是0xffffff00(24位为1,8位为0,共32位)。地址和掩码的按位与0x7f000001 & 0xffffff00 = 0x7f000000是CIDR格式。

我将告诉您确定如何最好地解析地址,将IPv4地址转换为其整数形式(然后返回),并从路由前缀掩码创建位掩码,尽管我会告诉您在以下位置有标准函数至少是地址操纵。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章