全国一共有多少 IP 地址?


因为我平时会弄个小程序、博客之类的,所以在购买云服务器,数据库的时候,一般会再申请一个公网IP地址。不是早就说IP地址已经耗尽了吗,为什么我随便就能申请到,腾讯云到底屯了多少IP地址,咱们中国总共又有多少IP地址呢?

【IP地址】

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

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

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

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

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

    提到特殊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地址、域名和许多其它参数的机构。

1639722689.png

    在它的官网中,有一个文档,包含了迄今为止,所有特殊用途的IP地址:https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml

1639722720.png

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

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


【中国的IPv4地址数量】

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

1639722972(1).jpg

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

1639723001.png

    该文件每行的格式如下:

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

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

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

    可以看到,截止2021-12-1日,中国大陆地区一共分配了8614个网段:

1639723053.png

    写个简单的脚本程序,将所有网段的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地址数量:343881984,约占整个IP地址空间的8%。

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

        台湾:35688960

        香港:12612096

        澳门:336640

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

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

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

1639723148.png

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



【腾讯云的IPv4地址数量】

    在公开的信息中,只找到了一份2019年发布的数据:

1639723351.png

    2019上半年,腾讯云的活跃IP数量在144万,而三年前腾讯云屯的IP总数已经超过480W,三年之后,这个数据只会更多,就国内几家云服务厂商而言:任需努力。

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

    至此,文章开头的问题算是弄清楚了。当然了,购买云服务器得来的IP地址也是有租用期限的,比如我去年购买的云服务器到期之后,里面的公网IP地址也就回收了,说不定现在已经分配给别人了。

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

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

上一篇 下一篇

评论

登录后可发表评论