当前位置: 首页 > news >正文

根据子网前缀的长度计算ip范围

要根据子网前缀的长度计算IP范围,我们需要了解子网前缀长度与子网掩码之间的关系,以及如何通过子网掩码来确定IP地址的网络部分和主机部分。以下是根据子网前缀长度计算IP范围的步骤:

  1. 确定子网前缀长度
    子网前缀长度(也称为CIDR前缀长度)表示在IP地址中,网络部分占据的位数。例如,/24表示网络部分占据前24位。

  2. 计算子网掩码
    根据子网前缀长度,我们可以计算出子网掩码。子网掩码是一串连续的1,后跟一串连续的0,其长度与IP地址的位数相同(对于IPv4地址是32位)。例如,对于/24前缀长度,子网掩码是255.255.255.0(即11111111.11111111.11111111.00000000)。

  3. 确定网络地址
    网络地址是子网中第一个IP地址,它通过将IP地址与子网掩码进行按位AND运算得到。例如,如果IP地址是192.168.1.1,子网掩码是255.255.255.0,则网络地址是192.168.1.0

  4. 计算广播地址
    广播地址是子网中最后一个IP地址,它通过将网络地址的主机部分全部设置为1得到。例如,对于/24前缀长度的网络,广播地址是网络地址的最后一段 + 255(在二进制下是全部为1)。所以,如果网络地址是192.168.1.0,则广播地址是192.168.1.255

  5. 确定可用的IP地址范围
    可用的IP地址范围是从网络地址的下一个地址开始,到广播地址的前一个地址结束。例如,对于网络地址192.168.1.0和广播地址192.168.1.255,可用的IP地址范围是192.168.1.1192.168.1.254

  6. 考虑特殊地址
    在网络中,网络地址和广播地址通常不分配给主机使用,因为它们有特殊的用途。网络地址用于标识子网本身,而广播地址用于向子网内的所有设备发送广播消息。

综上所述,根据子网前缀的长度计算IP范围涉及确定子网掩码、网络地址、广播地址,并考虑特殊地址的用途。通过这些步骤,我们可以准确地计算出任何给定子网前缀长度的IP地址范围。

//对应ip的32位4部分  a.b.c.d
//子网前缀长度
//计算ip范围的方法实现
//CIDR前缀长度
//a.b.c.d/n   例如220.115.200.0/21
//第一步 将ip转为二进制编码  a,b,c,d
//-------------------------------数字转二进制 start--------------------------------------
//转二进制的方法  先列出8位1 各自代表的值 128  64  32  16  8  4  2 1
//以a为例计算,从高位开始减 依次尝试减去128  64  32  16  8  4  2 1
//temp=a;
//计算第8位a-128 >=0  则第8位为1,当前计算记录值temp减去128;否则第8位为0,当前计算值减去0,也就是不变  220为(220.115.200.0/21中的第一位)  220-128=92 >0   1000 0000  temp=92
//计算第7位temp-64 >=0  则第7位为1,当前计算记录值减去64;否则第7位为0,当前计算值减去0,也就是不变 92-64=28>0  1100 0000  temp=28
//计算第6位temp-32 >=0  则第6位为1,当前计算记录值减去32;否则第6位为0,当前计算值减去0,也就是不变 28-32=-4<0  1100 0000 temp=28
//计算第5位temp-16 >=0  则第5位为1,当前计算记录值减去16;否则第5位为0,当前计算值减去0,也就是不变 28-16=12 >0  1101 0000 temp=12
//计算第4位temp-8 >=0  则第4位为1,当前计算记录值减去8;否则第4位为0,当前计算值减去0,也就是不变  12-8=4>0  1101 1000 temp=4
//计算第3位temp-4 >=0  则第3位为1,当前计算记录值减去4;否则第3位为0,当前计算值减去0,也就是不变  4-4=0==0  1101 1100 temp=4-4=0
//计算第2位temp-2 >=0  则第2位为1,当前计算记录值减去2;否则第3位为0,当前计算值减去0,也就是不变  0-2=-2<0  1101 1100 temp=0
//计算第1位temp-1 >=0  则第1位为1,当前计算记录值减去1;否则第3位为0,当前计算值减去0,也就是不变  0-1=-1<0  1101 1100 temp=0//200转成二进制表示为10110100
//-------------------------------数字转二进制 end  --------------------------------------//4个数字都转换  220.115.200.0  =》 11011100   1110011  11001000  00000000//子网掩码  即前n个是1  220.115.200.0/21 中21个1  11111111 11111111 11111000 00000000//第二步  ip二进制和子网掩码二进制 进行与运算(相同位都为1,则结果为1,否则为0)
//    11011100 01110011 11001000 00000000
//    11111111 11111111 11111000 00000000 
//结果11011100 01110011 11001000 00000000
//将结果转为10进制 
//----------------------------------------------2进制转10进制的方法----------------------------------------
//当前位的值乘以2(位数-1)的次方, 例如11011100  :1*2^7+1*2^6+0*2^5+1*2^4+1*2^3+1*2^2+0*2^1+0*2^0=220
//以此类推 11011100 01110011 11001000 00000000  =》 220.115.200.0  
//起始地址为 220.115.200.0//第三步 计算ip地址范围的结束地址
// 起始地址对应二进制的后(32-n)位全部设置为1. ) 11011100 01110011 11001000 00000000的32-21=11位设置为1  
//11011100 01110011 11001000 00000000 => 11011100 01110011 11001111 11111111  再转为10进制 =》 220.115.207.255
//其中最后一位需要减1  220.115.207.255=》220.115.207.254
//大功告成  ip范围为 220.115.200.0-220.115.207.254

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 搭建数据库启前后端环境
  • Cobalt Strike 4.8 用户指南-第六节-Payload Artifacts和反病毒规避
  • 3分钟带你了解什么是元数据管理
  • 基于Python的网络编程
  • docker安装配置、docker命令
  • git 更改分支名称
  • 公司网站设计方案
  • 【Linux】进程周边:进程概念
  • 给已有的.so库重新封装一个新的库,并能使用新旧库中的函数
  • Java Socket tcp udp 使用
  • Android 13 aosp 恢复出厂设置流程
  • 【MySQL】Ubuntu22.04安装MySQL8.0.39及修改默认用户名和密码
  • 如何操作可以有效的防止其他人修改Excel文件?
  • 《JavaEE进阶》----6.<SpringMVC实践项目:【简易两整数加法计算器】>
  • 【重学 MySQL】一、数据库概述
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • create-react-app项目添加less配置
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java,console输出实时的转向GUI textbox
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Making An Indicator With Pure CSS
  • MySQL QA
  • Protobuf3语言指南
  • 电商搜索引擎的架构设计和性能优化
  • 机器学习 vs. 深度学习
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • #1014 : Trie树
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (3)STL算法之搜索
  • (52)只出现一次的数字III
  • (BFS)hdoj2377-Bus Pass
  • (C++哈希表01)
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.01.09
  • (一)SvelteKit教程:hello world
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)iOS字体
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)项目管理杂谈-我所期望的新人
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net 后台导出excel ,word
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET企业级应用架构设计系列之应用服务器
  • .py文件应该怎样打开?
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • [ solr入门 ] - 利用solrJ进行检索