ip地址个数的计算
一个IP地址,却关联太多的知识
二进制与 8 比特
电脑中显示出来的数字是 10 进制的,键盘的每一个键都由一个 8 位的二进制编码,所以 1 字节等于 8 比特。对数字而言,1 的二进制是 00000001 ,255 的二进制 是 11111111,而256的二进制是9位。所以从8比特的概念而言,255是最大值。但是别忘记 0 这个数,从0~255 ,一共是 256 个数,2 的 8 次方是 256 。这就是 二进制与 8 比特 。IPv4 的规定是 4 组 8 比特值,那么就是4 个2的8次方之和,即2的32次方,这就是所有的IPv4个数。
ipv4 的 IP 个数表示与计算方法,举例而已
192.168.1.1/24 ,这是多少个IP呢,计算方法是 32 - 24 = 8 ,然后 2 的8 次方 = 256 ,就是256个IP地址,相当于一个C段地址
192.168.1.1/32 32-32=0 ,2 的 0次方 是1 ,表示一个 IP 地址
192.168.1.1/16 32 - 16 = 16 ,2 的16次方 个 IP地址
对 ipv6 而言,总数是128位,
fe80::216:3cff:fed6:f41e/64 表示 2 的 64 次方个
资料来源 https://www.zhihu.com/question/27050740/answer/57646373
IPV4
IPV4由4组8位二进制数组成
比如:1.1.1.1转换为二进制就是00000001.00000001.00000001.00000001
二进制是满二进一,所以每一位只有两个数0和1,那么32位二进制一共有2的32次方个不同的组合。
所以理论上IPV4一共有2的32次方个IP地址,也就是2^32=4294967296个。
IPV4一些特殊的IP地址
-127.x.x.x给本地网地址使用。
-224.x.x.x为多播地址段。
-255.255.255.255为通用的广播地址。
-10.x.x.x,172.16.x.x至172.31.x.x和192.168.x.x供本地网使用。
实际可以的IPV4地址很少,已经远远不够使用了。
说了IPV4就不得不提一下IPV6
IPv4一共有2^32=4294967296,IPv6有2^128=3.4028236692094*1038
远远超过了人类的计数范围,毫不夸张的做个比喻,IPV6可以为地球上的每一个沙粒分配一个IP地址。
关于IP地址还有很多知识,题住感兴趣可以看一下百科。
做个广告,最近我准备做一个IT技术问答社区,欢迎感兴趣的朋友访问,我们可以一起交流,网站还在功能完善阶段,地址ITwen
补充一下吧,有时间谢了一篇文章,原文地址关于IPV4和IPV6那些事
IPV4是InternetProtocolversion4的缩写,也就是互联网协议的第四个版本,下一个即将应用的版本是IPV6,有V4和V6就说明有V1,V2,V3,V5,也许由于某些原因它们都没能走出实验室。
IPV4运行在TCP/IP七层协议的网络层,是TCP/IP协议族的核心协议。目前全球因特网所使用的协议就是TCP/IP(个别实验室除外)。
IPV4的地址长度是32位(也就是4个字节),计算机中使用的是二进制,所以IPV4也就是32位二进制数组成的了,比如一个最简单的IPV4地址00000001.00000001.00000001.00000001,二进制数太长,不容易记住所以我们习惯写成十进制,上面的那一串0和1组成的IP地址换算为十进制就是1.1.1.1,还是十进制看着舒服吧。至于怎么换算大家可以自行百度一下二进制与十进制的转换方面的知识。
IPV4可以分为A,B,C,D,E5类地址
分类的原因就是为了更好地管理和应用IPV4地址,一个IPV4分为网络位和主机位。例如192.168.1.1/24,这个IP地址后面有个/24,说明前24位都是网络位,后8位是主机位,(还记得我们上面提到的二进制和十进制的转换吗?)。
IPV4的分类方法就是使用不同长度的网络位。
1.A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001000000000000000000000001-01111110111111111111111111111110)。可用的A类网络有126个,每个网络能容纳1677214个主机(1677214是主机位二进制换算的)。
2.B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128.1.0.1-191.255.255.254(二进制表示为:10000000000000010000000000000001-10111111111111111111111111111110)。可用的B类网络有16384个,每个网络能容纳65534主机。
3.C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围192.0.1.1-223.255.255.254(二进制表示为:11000000000000000000000100000001-11011111111111111111111011111110)。C类网络可达2097152个,每个网络能容纳254个主机。
4.D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
地址范围224.0.0.1-239.255.255.254
5.E类IP地址
以“1111”开始,为将来使用保留。
E类地址保留,仅作实验和开发用。
全零(“0.0.0.0”)地址指任意网络。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
IPV4一共有多少个IP地址呢?上面我们介绍过IPV4是32位二进制组成的,这也就意味着IPV4一共有32位,每位都可以有2个不同的数字0和1,所以IPV4理论上一共有2的32次方个地址,大概是4294967296这么多吧,乍一看还挺多的是吧,其实不然,还有一些保留的IP地址是不被在公网上使用的。
例如:
-127.x.x.x给本地网地址使用
-224.x.x.x为多播地址段
-255.255.255.255为通用的广播地址
-10.x.x.x,172.16.x.x至172.31.x.x和192.168.x.x供本地网使用
所以说,去掉保留的IP地址,实际可用的IP地址就更少了。实际的地址数本来就不多,再加上IPV4的分配不均匀我们可以使用的IPV4就更少了,由于IP地址是在美国产生的,所以美国拥有全球大多数的A类地址,要知道A类网络一共就有126个,每个网络能容纳1677214个主机,还有一些美国的大公司,比如微软,戴尔,,,记不清了,它们一个公司就有好多个A类地址,具体是多少记不清了。大概就是美国的IPV4地址数是中国的40倍左右。
虽然应用NAT,PAT技术能够暂时缓解一些IPV4地址不足带来的问题,但是物联网的时代已经到来,IPV4已经将近枯竭,以后我们们的自行车,手表,电视都需要IP地址,所以IPV6就顺理成章的被推出。
IPV6相对IPV4最大的变化就是,地址数多了,地址数多了,地址数多了重要的东西说三遍。IPV6由128位二进制组成,也就是说IPV6一共有2^128=340282366920940000000000000000000000000个地址(不知道我可漏0吗?)你猜一下这个数字有多大,,,可以为地球上的每一个沙粒分配一个IP地址,这次用不完了吧。
但是与IPv4一样,IPv6一样会造成大量的IP地址浪费。准确的说,使用IPv6的网络并没有2^128个能充分利用的地址。首先,要实现IP地址的自动配置,局域网所使用的子网的前缀必须等于64,但是很少有一个局域网能容纳2^64个网络终端;其次,由于IPv6的地址分配必须遵循聚类的原则,地址的浪费在所难免。
下面从百度百科复制(借鉴)一些IPV6的特性
(1)IPV6地址长度为128位,地址空间增加了2^128-2^32个。
(2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;
(3)IPV6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;
(4)提高安全性。身份认证和隐私权是IPV6的关键特性;
(5)支持更多的服务类型;
(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展;
好了,先介绍到这,由于能力有限有些地方说的可能不够准确,关于IP地址的知识还有很多很多,写几本书都不算多,大家感兴趣可以自行Google或百度,欢迎转载记得留下来处。
ip地址个数的计算的更多相关文章
- IP地址个数的计算原理
IP注释: IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网 ...
- 通过IP地址和子网掩码计算主机数
知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...
- C#根据IP地址和子网掩码计算广播地址
using System.Net; /// <summary> /// 获得广播地址 /// </summary> /// <param name="ipAdd ...
- IP地址及子网掩码计算
主机号全0表示网络号,主机号全1表示广播地址 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128. ...
- TCP/IP协议原理与应用笔记03:IP地址分类
1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...
- IP地址处理模块IPy
IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面. 在这个过程中,免不了要计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP ...
- 重学计算机网络(二) - 曾记否,查IP地址
先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务 更保护用户隐私. IP地址255.255.255.255,代表有限广播,它的目标是 ...
- IP地址分类及私网IP
5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...
- ip地址扫描
自己写的一个ip地址扫描脚本,功能是输入ip地址和掩码,通过ping检测整个网段的ip地址,输出ping的结果. 主要的几个函数如下: 1.ip地址转化为数值,方便计算 ip2num() { ip=$ ...
随机推荐
- 紫书 例题 10-16 UVa 12230(数学期望)
感觉数学期望的和化学里面求元素的相对原子质量的算法是一样的 就是同位素的含量乘上质量然后求和得出 这道题因为等待时机是0到2*l/v均匀分配的,所以平均时间就是l/v 再加上过河的l/v, 最后加上步 ...
- POJ 3863 Business Center
Business Center Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Origina ...
- Eclipse反编译插件 Enhanced Class Decompiler
因为jar包中的源码都是经过反编译的,所以需要安装插件才能查看到源码,此处介绍的是 Enhanced Class Decompiler 插件. 打开Eclipse,Help --> Eclips ...
- ArcGIS api for javascript——图层-创建定制的切片图层类型的图层
描述 本例展示了如何创建一个定制图层,该图层访问来自WEB服务器的地图切片.这种方式最通用的用途是检索ArcGIS Server 9.2切片缓存或web上的其他地图切片服务.尽管本例使用的是一个Arc ...
- SQL2008所有数据导出导入两种方法
方法一:生成脚本导出导入sql2008所有数据 第一步.右键要导出的数据库.任务--生成脚本 第二步,在设置脚本编写选项处,点击--高级(A),选择要编写脚本的数据的类型为:架构和数据 假设找不到 要 ...
- Hadoop HDFS (4) Hadoop Archives
用HDFS存储小文件是不经济的,由于每一个文件都存在一个block里,每一个block的metadata又在namenode的内存里存着,所以,大量的小文件.会吃掉大量的namenode的内存.(注意 ...
- linux下oracle11G DG搭建(三):环绕备库搭建操作
linux下oracle11G DG搭建(三):环绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 1 ...
- 用motion实现家庭视频监控
需求?当然不是为了艳照.你们这些猥琐的人类! 毕竟家里总会有没人的时候,出门走到半路忘记煤气灶是不是关了,还得回去看看. 在这个科技以人为本的时代,当然应该是拿出智能手机联网看看啦.还有万一有人闯空门 ...
- 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
getCacheDir()方法用于获取/data/data/<application package>/cache目录 getFilesDir()方法用于获取/data/data/< ...
- C++入门之HelloWorld
1.在VS2017上新建一个C++空白项目,命名为hello 2.在资源文件下新建添加新建项main.cpp 3.在main.cpp中编写hello world输出代码 #include<std ...