如何根据子网掩码计算出网络前缀(prefix)

这篇具有很好参考价值的文章主要介绍了如何根据子网掩码计算出网络前缀(prefix)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们知道子网掩码是对IP地址的网络地址的标注。把IP地址中网络地址位设置为1,主机地址位设置为0,得到的就是子网掩码。除了用子网掩码表示IP地址的网络地址和主机地址外,还可以用network prefix(网络前缀),比如192.168.0.1/16,这里的16就是prefix,也就是网络地址位的位数

那么CAPL脚本如何实现根据子网掩码获取网络前缀呢?

IP地址由:网络地址+主机地址组成,网络地址位为1,主机地址位为0。那么只需要计算从高位开始的bit位为1的位数有多少,就是网络前缀。比如255.255.0.0,从高位开始的bit位为1的位数有16个,那么prefix就是16

下面是一个有漏洞的函数实现:原因在注释里说明了文章来源地址https://www.toymoban.com/news/detail-414381.html

int Subnet2Prefix(char subnetString[])
{
  ip_Address subnetAddr;
  byte ipv4Array[4];
  byte subnetArray[16];
  int i;
  int prefix;
  prefix = 0;
  
  if (subnetAddr.ParseAddressFromString(subnetString) != 0)
    return -1;
  
  if (subnetAddr.GetAddressAsArray(subnetArray) != 0)//如果不能存储在16位字节数组中,就说明是ipv4
  {
    if (subnetAddr.GetAddressAsArray(ipv4Array) == 0)//那么就用4字节数组存储
      memcpy(subnetArray, ipv4Array, elcount(ipv4Array));//最终还是复制到16字节数组中,这样的好处是不管ipv4还是ipv6,
         

到了这里,关于如何根据子网掩码计算出网络前缀(prefix)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 根据子网掩码计算主机数

    参考: 通过子网掩码,计算子网数和主机数_Firewine的博客-CSDN博客_子网掩码计算子网h 已知IP和子网掩码,计算网络号、主机号、子网个数、可容纳的主机数 某位 =1 : IP 地址中的对应位为网络号和子网号 某位=0 : IP地址中的对应位为主机号 需要排除这2位后才为主机数量。

    2024年02月09日
    浏览(27)
  • 【IP地址与子网掩码】如何计算网络地址、广播地址、地址范围、主机个数、子网数(附详解与习题)

    【 写在前面 】其实很多时候通过IP地址和子网掩码计算其网络地址、广播地址、可用IP,地址范围,主机数啥的,有些人不太清楚规则就只能瞎猜了,但是作为一个网络管理员还是一个基础常识的,这不因为最近备考网络管理员,所以我做了一个梳理,顺带出了一个习题给大

    2024年02月03日
    浏览(68)
  • 计算机网络【2】 子网掩码

    学习大佬记下的笔记 https://zhuanlan.zhihu.com/p/163119376 \\\"子网\\\"掩码,顾名思义,它就是拿来划分子网的,更准确的说,划分子网的同时,还能通过它知道主机在子网里面的具体ip的具体地址。 子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分 子网掩码的

    2024年02月01日
    浏览(32)
  • IP地址、子网掩码、网络号、主机号、子网号的计算

    构成:网络号+主机号 分类 IP地址分类 网络号 主机号 A类 8位 24位 B类 16位 16位 C类 24位 8位 有效主机位:2 主机号 -2个.其中第一个地址为子网地址, 最后一个为广播地址不可用因此省略,但在计算所有主机位的时候不要忽略要加上 如何区分A、B、C类 类别 第一字节范围 最大主

    2024年02月04日
    浏览(48)
  • 已知IP地址和子网掩码计算网络号

    已知B类地址的子网掩码为255.255.0.0,假设某B类地址为127.24.36.55,那么它的网络号为:() 解答: 步骤一:首先将网络的IP地址和子网掩码都转换成32位二进制字符。 IP地址为127.24.36.55,子网掩码为255.255.0.0,转换成二进制: IP地址:01111111.00011000.00100100.00110111 子网掩码:111

    2024年02月09日
    浏览(43)
  • IP地址、子网掩码、网络地址之间相关的计算

    IP地址 先来看IP地址为:1.1.1.1/29 上述IP地址为1.1.1.1,后面的/29代表的是它的子网掩码为29位,首先IP地址由4组8位二进制数字组成,中间拿点(.)隔开也就是说上面IP换算成二进制就是下面这样的 00000001.00000001.00000001.00000001 子网掩码 而其后面的/29就说说它的子网掩码的IP地址换算

    2024年02月09日
    浏览(44)
  • 计算机网络——主机IP地址、子网掩码、广播地址、网络数、主机数计算方法

    目录 一、概念 1.1 主机IP地址 1.2 子网掩码 1.3 广播地址 1.4 子网划分 二、计算 2.1 已知IP地址和子网掩码,计算网络地址和主机地址: 2.2 已知IP地址和子网掩码,计算广播地址: 2.3 已知子网掩码,计算主机数: 2.4 已知子网掩码,计算会产生多少个子网: 2.5 已知子网掩码,

    2023年04月24日
    浏览(33)
  • 计算机网络相关-ip地址,子网掩码与网络地址,广播地址

    计算机网络基础(进制转换和IP地址详解)_ip地址进制转换方法_码海小虾米_的博客-CSDN博客 总的来说,ip地址用点隔开,用4个0-255之间的十进制数表示,如192.168.65.98 有这样的题:告诉你ip地址和子网掩码位数,求网络地址和广播地址。 一般给出的信息是这样的:192.168.65.98

    2024年02月07日
    浏览(45)
  • IP地址,子网掩码,网络地址,直接广播地址,网络位主机位的计算

    IPV4的长度为32位,IPV4地址包括网络号和主机号两部分,根据这两个部分的划分又分为 A类地址,B类地址,C类地址。它们都是32位的(1字节=8位), 网络部分唯一标识了一条物理链路,对于与该链路相连的所有设备来说网络号部分是共同的,而主机号部分唯一地标识了该链路

    2023年04月12日
    浏览(32)
  • 计算机网络基础知识(二)—— 什么是Ip地址、Mac地址、网关、子网掩码、DNS

    初次接触网络时,只知道电脑连接网线,就可以打开4399玩小游戏,可以登录QQ和朋友聊天; 再次接触网络时,知道了怎么查看自己电脑的网络情况(Windows终端下敲入ipconfig),但是对于其中的一串串数字完全一头雾水,现在来看下这些数字都代表着什么意思吧🤓 I P 地址是网

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包