之前为了准备CTF比赛,搞了一个云服务器,顺便申请了一个公网IP

看着申请到的IP地址,我突然想到了一个问题:不是早就说IP地址已经耗尽了吗,为什么我随便就能申请到,是谁在负责IP地址的管理分配,咱们中国总共又有多少IP地址呢?

答案:大概是3.9亿多个。而美国有十多亿,是我们的好几倍。这个数字怎么来的呢,别着急,继续往下看。

大家知道,我们现在的互联网主要还是采用的IPv4的地址,虽然我上大学那会儿就在吼IPv6了,但这么多年过去了,IPv4的地位依旧没有动摇。

IPv4的IP地址,是采用4个字节的整数来表示,学过编程的都知道,4个字节能够表示的范围是0-4294967295(无符号数)。

也就是说,全世界最多只有42.9亿个IPv4的地址。

当然,为了书写和记忆方便,我们一般不会用整数来表示,而是采用点分十进制的形式。

从 0.0.0.0 到255.255.255.255,分四个字节,每个字节范围是0-255。

然而,IP地址中不是所有都能拿来直接用,这42.9亿中有不少特殊用途的IP地址。

比如很多人都知道这三个范围的私有IP:

10.0.0.0--10.255.255.255
172.16.0.0--172.31.255.255
192.168.0.0--192.168.255.255

实际上,除了这三个范围的IP地址,还有许多特殊用途的IP地址。网络上很多文章列举的七七八八,都不完善,完整的特殊IP地址列表,还得要去管理IP地址的IANA官网查看。

IANA

IANA,全称Internet Assigned Numbers Authority,互联网号码分配机构,它管理着全球互联网中使用的IP地址、域名和许多其它参数。

在它的官网中,有一个文档,包含了迄今为止,所有特殊用途的IP地址:

很多人都知道127.0.0.1代表着本地回环地址,但其实回环地址不只是一个,从127.0.0.0-127.255.255.255整个16777216个地址都是回环地址,所有发往这些地址的数据包都会被loop back。

IP地址本就珍贵,这么多都作为回环地址,是不是有点浪费啊?

中国的IPv4地址数量

全球的IP地址由五大区域性机构进行管理,咱们国家的IP地址由亚太地区的APNIC分配管理。

在APNIC的官网上,也有一个公开的文档,记录了APNIC管理分配的所有IP地址信息,每日更新,可以访问下面这个地址拿到:

该文件每行的格式如下:

注册机构|国家/地区代码|类型|起始地址|IP数量|分配日期|状态

咱们大陆地区的代码是CN,所以,可以通过简单的命令将大陆地区的IPv4地址分配情况筛选出来:

cat delegated-apnic-latest | grep "CN|ipv4" > cn_ipv4.txt

可以看到,截止2024-8-17日,中国大陆地区一共分配了8655个网段:

写个简单的脚本程序,将所有网段的IP地址数量相加:

import sys
total = 0
print('target file: %s' % sys.argv[1])
with open(sys.argv[1]) as fp:
while True:
line = fp.readline()
if line:
fields = line.split('|')
ip = fields[3]
num = int(fields[4])
print('ip: %s, num: %d' % (ip, num))
total += num
else:
break
print('total: %d' % total)

得到总共的IP地址数量:3 4314 4448,约占整个IP地址空间的8%

用同样的方法,分别统计台湾、香港、澳门三个地区的数据:

  • 台湾:35711232
  • 香港:12571136
  • 澳门:337664

那整个加起来的数据就是:3 9176 4480,三亿九千多万,约占整个IP地址空间的9.14%

通过同样的方法,还可以找到美国的数据,大概是15 8647 9872,接近16亿左右。按照人均来算,美国人均可以分到4个公网IP地址。真是太阔绰了,没办法,谁让互联网是人家发明的呢。

那这个数据到底对不对呢?

我查阅了国内专门负责IP地址分配管理的机构:CNNIC(中国互联网络信息中心)在今年3月份发布的一份《第 53 次中国互联网络发展状况 统计报告》,其中关于IP地址这里,有一个数据:

这份文件给出去年12月份的数据,全国的IPv4地址大概在3.92亿,与前面的统计基本上吻合,可能由于数据时间和其他方面的因素,存在小部分的出入,但总体而言,国内的IPv4地址数量大概在这个规模是肯定的。

阿里云的IPv4地址数量

弄清了国内的IP地址数量,那么问题来了,阿里云到底有多少IPv4地址呢?

在淘宝下的一个IP地址库中找到了一个数据:

当然,从表格中大陆地区的IP地址数量可以看到,这个表格的数据是有些过时了,但数量级应该差不了太多。

从这份数据来看,阿里巴巴拥有差不多 370W+ 的IP地址。

而这,仅仅是活跃的IP地址数,不代表阿里所屯的IP地址总数。

那阿里究竟屯了多少IP,在公开的信息中,我只找到了一份2019年发布的数据:

2019上半年,阿里云的活跃IP数量在330万,比上面的淘宝IP统计少了40万,也就是说2年之后活跃IP增长了40万。

而光是2019年的这份数据,阿里云屯的IP总数已经超过1500W+,而现在,这个数据只会更多,就国内几家云服务厂商而言,可谓是一骑绝尘了。

从上面图中还可以看出,亚马逊不愧是全球最强大的云计算厂商,足足屯了7500W+ 的IP地址,就这还是几年前数据。

至此,我们的问题算是弄清楚了。当然了,购买云服务器得来的IP地址也是有租用期限的,云服务器到期之后,里面的公网IP地址也就回收了。

虽然IP地址紧张,但各云服务器厂商都屯了不少,公网IP在池子里不断流转,所以我们才能花个百来十块就搞来一个。

最后,给大家留一个思考题:0.0.0.0和127.0.0.1这两个IP地址,有什么不同?


很多小伙伴有查询IP地址归属地的需求,这里推荐一个纯真数据库:

纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本。如果有需要免费版IP库的朋友可以前往纯真的官网进行申请。
纯真除了免费的社区版IP库外,还提供数据更加准确、服务更加周全的商业版IP地址查询数据。纯真围绕IP地址,基于 网络空间拓扑测绘 + 移动位置大数据 方案,对IP地址定位、IP网络风险、IP使用场景、IP网络类型、秒拨侦测、VPN侦测、代理侦测、爬虫侦测、真人度等均有近20年丰富的数据沉淀。

全中国有多少公网IP地址?的更多相关文章

  1. Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址

    <Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...

  2. Windows Azure Web Site (9) Web Site公网IP地址

    <Windows Azure Platform 系列文章目录> 本文会同时介绍国内由世纪互联运维的Azure China和海外Azure Global. 熟悉Windows Azure平台 ...

  3. Windows Azure Web Site (17) Azure Web Site 固定公网IP地址

    <Windows Azure Platform 系列文章目录> 在之前的文档中,笔者介绍了Azure Web Site是一个多租户的环境,每个部署单元有一个可以通过Internet访问的入 ...

  4. Delphi获取公网IP地址函数

    uses IdHTTP; function GetPublicIP: string; var strIP, URL: string; iStart, iEnd: Integer; MyIdHTTP: ...

  5. icanhazip.com 使你在不论什么地方知道你的公网IP地址

    icanhazip.com 使你在不论什么地方知道你的公网IP地址 icanhazip.com是一个网址,你在浏览器中输入这个网址,你就能得到你的公网IP地址了. 我在Linux下一般使用curl i ...

  6. 【C#】C#获取本地的内网(局域网)和外网(公网)IP地址的方法

    1.获取本机的IP地址集合: /// <summary> /// 获取本机所有ip地址 /// </summary> /// <param name="netT ...

  7. 有一个公网IP地址

    这几天在家里拉了一条300M+的宽带,但是遇到了一些坑,本文就简单说明一下如下: 突发此次需求是这样的:阿里云有台服务器公网带宽是1M的,虽说带宽小,但是数据中心的服务器显然是稳定的,只是带宽太小,有 ...

  8. 解析私有IP地址和公网IP地址

    局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...

  9. 全球最全路由DNS服务器IP地址

    全球只有13台路由DNS根服务器,在13台路由服务器中,名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置于英国.瑞典和日本.下表是这些机器的管理单位.设置地点及最新的IP地址. 供应商 ...

  10. 公网IP地址就一定是A类地址和B类地址吗?那C类地址就一定是私有地址吗?

    A,B,C三类中既有公网地址,也有私网地址:在A类地址中,10.0.0.0-10.255.255.255是私有地址.在B类地址中,172.16.0.0-172.31.255.255是私有地址.在C类地 ...

随机推荐

  1. 讲师招募 | Apache DolphinScheduler Meetup诚邀您共建开源!

    随着Apache DolphinScheduler在全球范围内的快速发展,我们的用户群体和社区活动也在不断扩大. 为了进一步丰富我们的社区内容,分享更多有价值的知识和经验,我们诚挚地邀请您加入我们,成 ...

  2. [最新] Chrome 添加 Cookie 标红的解决方法(测试于119)

    最近发现 Chrome 开发人员工具里无法添加 Cookie,输入名称时整行变红,而且不会自动补充域.大小.过期时间等项. 网上搜全都是 Chrome 96 要开 Partitioned Cookie ...

  3. 【Linux驱动】充电芯片bq24735调试详解

    一.bq24735简介 bq24735 是一款高效率同步电池充电器. 当系统供电需求暂时高于适配器最大供电水平的时候, bq24735 使用智能加速技术来允许电池向系统中释放能量,这样的话将保护适配器 ...

  4. Win32 创建窗口翻车记录

    今天创建窗口的时候,在捕获消息WM_CREATE的时候翻车了,找了好久都没找到,我换另一台电脑上又没出问题, 现分享下:LRESULT QWnd::WindowProc(HWND hWnd, UINT ...

  5. Linux samba的配置和使用

    samba是什么 samba是什么?能干什么?什么场合需要用到它? samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标.S ...

  6. 如何阅读 diff 命令的输出

    diff 命令有三种模式:上下文模式(context),合并模式(unified)和普通模式(normal).其中最常用的是合并模式. 合并模式 diff -u f1 f2 --- f1 2024-0 ...

  7. k8s pod挂载hostPath执行写时报错Permission denied

    关于hostPath的权限说明 最近项目中经常遇到pod中container挂载主机hostPath报错无权限问题: httpd@hostpath-volume:/test-volume$ touch ...

  8. uni-app和vue及微信小程序的异同

    uni-app和vue的区别1.目录不同 uni-app目录依赖原生小程序风格,比如分包的概念 vue中对不同的页面只需要在views文件夹中定义不同组件,然后配置路由跳转就行了,所有页面都是这样, ...

  9. Opensack-T版脚本安装

    openStack-train 搭建部署 项目环境: 主机名 外网口(net) 内口(仅主机)s 配置 controller 192.168.220.10/192.168.220.1/24 192.1 ...

  10. NOIP 考前板子复习

    点双 注意两个点,特判单点,是 son = 0 且 fa = 0,因为自环,还有弹栈弹到儿子节点处,因为点双不一定由割点弹出. code void dfs(int u, int la) { int s ...