一文聊透 IP 地址的那些事

更新日期: 2022-04-27阅读: 1.4k标签: ip

IP 地址,是一个大家都耳熟能详的名词。 以生活举例,IP 在互联网中的作用就像是寄件时的收件人地址和寄件人地址,收件人地址让信件可以被正确送达,寄件人地址则让收到信的人可以回信。


IP 地址作为每一个互联网设备都拥有的,独一无二的地址,其本质是 TCP/IP 协议族中网络层的协议,也是 TCP/IP 协议族的 核心协议。 自 1981 年 Jon Postel 在 RFC791 中定义了第一次定义了 IP,到现在 IP 已经是现今互联网技术的基础。 目前的全球互联网所采用的协议族是 TCP/IP 协议族。 而 IPv4 是互联网协议(Internet Protocol,IP)的第四版。

IP 地址的表示方式

IPv4 地址(下文统称 IP 地址)是一个 32 位的二进制数表示的地址。 因此,除了全 0 地址用来表示一个无效的,未知的,或者不可用的目标外,IPv4 一共拥有  2^32-1   个地址。 它通常都是如下的样子:

显而易见,直接展示完整 32 位的 IP 地址既不直观也不好记忆。 所以为了方便使用,我们把这 32 位二进制数分成八位一组,称之为八位组(octet)。 每个八位组书写时用点分十进制的格式标识。 每个八位组取值为00000000~11111111(二进制数),使用十进制数表示则值为 0~255。 这就让 IP 地址变成了下面的样子:

而因为二进制与十进制的转化非常简单,只需要用二进制数的每一位乘以 2 的 N 次方即可,这其中的 N 是相应的位,从低位到高位以 0 次方开始,将二进制是 1 的每位结果相加得到的就是相应的十进制数。

0111111101111111(二进制数)
2 的 7 次方2 的 6  次 方2 的 5  次 方2 的 4  次 方2 的 3  次 方2的2 次 方2 的 1  次 方2 的 0  次 方2 的 N  次 方
1286 4(二进制是1的位)32(二进制是1的位)16(二进制是1的位)8(二进制是1的位)4(二进制是1的位)2(二进制是1的位)1(二进制是1的位)64+32+16+8+4+2+1 = 127(十进制数)

把 32 位的二进制数的 IP 地址使用点分十进制来标识,除了全 0,这个范围是从 000.000.000.001 到 255.255.255.255。 然后再进一步的优化,例如对于 000.000.000.001,每个八位组中,高位的 0 可以不用写出,即为 0.0.0.1。 这一步步的最终让 IP 地址变成了现在我们最熟悉的样子,比如10.0.0.1、192.168.33.44 这类。 顺带一提我们上面举例用的 IP 地址转换为点分十进制后,就是大名鼎鼎的本机回送地址,这个地址是筑基内部的 IP 地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。

127.0.0.1

IP 地址的结构

看到这里大家自然就会想到,除了本机地址,IP 还有其他地址吗? 没想到吧,真的有。 IP 地址可以划分为两个部分 : 网络地址和主机地址。

  • 网络地址: 表示主机所在的网络区域

  • 主机地址: 主机在网络区域中的具体逻辑位置

如果我们把 IP 地址和电话号码做类比: 电话号码 0571-81020204 中,0571 是区号,代表浙江杭州,类似于 IP 地址中的网络地址部分。 81020204 是杭州市内某一个电话机的确切号码,这就类似于 IP 地址中的主机地址部分。

当 IP 数据包在网络中传递时,路由器只关心目的 IP 地址的网络地址部分,通过识别 IP 地址的网络部分,来为 IP 数据包进行路由操作。 当数据包达到了目的的网段以后,才通过 IP 地址的主机部分查找具体的接收主机。

那么,对于 IP 地址来说,哪几位是网络部分,哪几位是主机部分呢? 这就需要根据网络规模和实际需求来划分了。

IP 地址的分类

IP 在被设计时,将 IP 地址分成五个等级(Class A、B、C、D、E)。 一般常用的是 A、B、C 这三种等级的 IP 地址,分别适用在大、中、小型网络。 在申请 IP 地址时,会由负责管理 IP 地址的机构,依照申请者所需要的网络规模,赋予不同等级的 IP 地址。


A、B、C类的网络部分和主机部分的长短各不相同,网络地址越短,对应的可分配的主机地址就会越多。

在A、B、C 类地址中,有一部分被用做了私有地址。 私有地址又称为私网地址或假地址,是指不在互联网上使用的,仅在企业或组织内部局域网上使用的 IP 地址。 与之对应的,可以在互联网上使用的 IP 地址称为公网地址或真地址。 私有地址的存在让局域网中的主机不需要全部分配互联网的可用地址,从而节约有限的 IP 地址资源。

分类范 围私 有地址规模
A 类地址

网络地址为 8 位,第 1 位必须是 0。

网络地址从 00000000 - 01111111,总共有 128(2 的 7 次方)个可以运用的网络地址。

其中,以  01111111(127)开头的地址,即127.0.0.0 网段的地址是测试地址,不可分配。

整个 10.0.0.0 网络的所有地址都是私有地址。网段一共有 125(2的7次方-3)个,每个网段中可以有 16777214(2的24次方-2)台主机。 适合分配给规模特别大的网络使用。
B 类地址

网络地址为 16 位,前 2 位必须是 10。

网络地址从 10000000 - 10111111,也就是从 128 - 191。

172.16.0.0 - 172.31.255.255 范围内的所有地址为私有地址。网段一共有 16368(2 的 14 次方-16)个,每个网段中可以有 65534(2 的16 次方-2)台主机。 适合分配给规模大的网络使用。
C 类地址

网络地址为 24 位,前 3 位必须是 110。

网络地址从 11000000 - 11011111,也就是从 192 - 223

192.168.1.0~192.168.255.255 范围内的所有地址是私有地址。网段一共有 2096896(2 的 21 次方-256)个,每个网段中可以有 254(2 的 8 次方-2)台主机。 适合分配给规模小的网络使用。
D 类地址第 1 个八位以 1110 开头的地址,网络地址从 11100000~11101111,也就是从 224 - 239。无。保留地址,不标识网络,用于多点广播。 本文不做介绍。
E 类地址第 1 个八位以 11110 开头的地址,网络地址 11110000,也就是 240。无。保留地址,不标识网络,用于做研究。

IP 地址的未来

我们前面提到 IPv4 一共拥有  2^32-1  个地址。 这个数量乍一眼看上去是很多的,但是考虑到现在每一个手机,每一台电脑,甚至每一个冰箱都会接入网络,都需要一个 IP 地址,那这个数量一下子就不够用了。

2011 年 2 月 3 日,全球 IP 地址分配机构 IANA(Internet Assigned Numbers Authority)就宣布其地址池中的 IPv4 地址分配完毕了。 2011 年 4 月 15 日,亚太互联网络信息中心(APNIC)在 2012 年 9 月 14 日为欧洲网络信息中心(RIPE NCC)分配了最后一个 IPv4 区块,在 2014 年 6 月 10 日为拉丁美洲和加勒比海(LACNIC)分配了最后一个 IPv4 区块。 2015 年 9 月 24 日为北美分配 IPv4 区块,2019 年 11 月 26 日,欧洲 RIPE NCC 终于耗尽了存储。


没有了 IP 地址新的设备就无法接入互联网,为了解决这个问题我们开始拥抱 IPv6。 IPv6 的地址数量是 IPv4 的 2 的 96 次方倍,不用再担心地址枯竭的问题。 早在 1998 年我们就开始了对 IPv6 的相关实验研究,但有一个很严肃的问题摆在我们眼前。 那就是 IPv6 和 IPv4 之间的互通需要专门的技术和设备。 为了解决这个问题,加快推进部署和应用 IPv6。 工信部指导基础电信企业完成了骨干网络、LTE 网络、城域网络 IPv6 升级改造,实现了全国 14 个骨干网直联点 IPv6 互联互通。

数据显示,截至 2021 年 12 月,我国 IPv6 活跃用户数已达 6.08 亿,约占中国网民的 60.11%。 从流量来看,城域网 IPv6 总流量突破 44.77 Tbps,占全网总流量的 9.38%,LTE 核心网 IPv6 总流量超过 24.43 Tbps,占全网总流量的 35.15%。

又拍云也推出了快速、安全的 IPv6 加速解决方案,助力企业快速实现 IPv6 的接入,扩大企业的业务服务范围,提升用户的访问体验。 又拍云 CDN 平台同时支持 IPv4 和 IPv6 用户的访问,企业无需新增域名,已有加速域名也无需特殊配置,可平滑升级支持 IPv6 用户访问。 一个崭新的未来就在眼前。

来自:又拍云


链接: https://fly63.com/article/detial/11406

node.js监听不同ip地址的差异

IP地址一共分为A~E5类,它们分类的依据是其net-id所占的字节长度以及网络号前几位。127.0.0.1:回环地址。该地址指电脑本身,主要预留测试本机的TCP/IP协议是否正常。只要使用这个地址发送数据,则数据包不会出现在网络传输过程中。

子网掩码的概念、规则

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码的设定必须遵循一定的规则

nginx 对同一 ip 访问请求速率限制

模块ngx_http_limit_req_module,所述ngx_http_limit_req_module模块(0.7.21)用于限制每一个定义的键值的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率。使用“漏桶”方法进行限制。

vue-cli启动本地服务,局域网下通过ip访问不到的原因

新开发了一个vue-cli项目,想通过手机查看效果,发现访问不到,ip地址和端口号都没错但是手机访问不到,在本机电脑浏览器输入ip端口号一样访问不到,只能通过localhost:8080访问到,同一局域网下其他的手机和电脑并不能通过ip地址访问调试

Js正则表达式验证IP地址

正则验证合法_有效的IP地址(ipv4/ipv6),不墨迹直接上代码,正则表达式:/^*****$/,JS函数方法:

前端Js获取本网IP和外网IP方法总汇

我们应该知道一台电脑需要两个ip才可以上网,一个是本地的内网ip(本地ip),另一个就是外网ip(公网ip)。值得说明的是:外网ip具有世界范围的唯一性

利用宝塔面板计划任务shell脚本扫描恶意IP

我们需要找到恶意ip,可以利用脚本分析在一分钟单个IP访问的频率,超过一定的频率(一般来正常的访问,一分钟内应该不超过60次,你可以设置为更小),即认定为恶意IP。宝塔面板的shell脚本如下:

js获取本地ip地址和外网IP地址

分享一个js获取ip地址的代码,可用于获取本地ip地址与外网ip地址,有需要的朋友参考下。获取外网ip发现比较全而好的前端获取客户端IP的方法基本都是通过三方接口。也就是调用别人写好的接口。

IPv4 子网查询

A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0 (其中127.0.0.0~127.255.255.255为环回地址,用于本地环回测试等用途);B类:128.0.0.0~191.255.255.255,默认子网掩码/16,即255.255.0.0;

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!