中国有多少个公网IP地址总数?

摘要:之前为了准备CTF比赛,搞了一个云服务器,顺便申请了一个公网IP。 看着申请到的IP地址,我突然想到了一个问题:不是早就说IP地址已经耗尽了吗,为什么我随便就能申请到,是谁在负责IP地址的管理分配,咱们中国总共又有多少IP地址呢? 答案:大
之前为了准备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地址: 地址:https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml 很多人都知道127.0.0.1代表着本地回环地址,但其实回环地址不只是一个,从127.0.0.0-127.255.255.255整个16777216个地址都是回环地址,所有发往这些地址的数据包都会被loop back。 IP地址本就珍贵,这么多都作为回环地址,是不是有点浪费啊? 中国的IPv4地址数量 全球的IP地址由五大区域性机构进行管理,咱们国家的IP地址由亚太地区的APNIC分配管理。 在APNIC的官网上,也有一个公开的文档,记录了APNIC管理分配的所有IP地址信息,每日更新,可以访问下面这个地址拿到: http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 该文件每行的格式如下: 注册机构|国家/地区代码|类型|起始地址|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%。
阅读全文