今天要聊的話題是關於 IP 地址,全中國一共有多少 IP 地址?圖片來自 包圖網IP 地址因為我平時會弄個小程序,搭個網站博客之類的,所以在購買雲服務器的時候,一般會再申請一個公網 IP。看著申請到的 IP 地址,我突然想到瞭一個問題:不是早就說 IP 地址已經耗盡瞭嗎,為什麼我隨便就能申請到,阿裡雲到底屯瞭多少 IP 地址,咱們中國總共又有多少 IP 地址呢?大傢知道,我們現在的互聯網主要還是采用的 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 地址,估計很多人都知道這三個范圍的私有 IP:10.0.0.0–10.255.255.255172.16.0.0–172.31.255.255192.168.0.0–192.168.255.255實際上,除瞭這三個范圍的 IP 地址,還有許多特殊用途的 IP 地址。網絡上很多文章列舉的七七八八,都不完善,完整的特殊 IP 地址列表,還得要去管理 IP 地址的 IANA 官網查看。IANAIANA,全稱 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 可以看到,截止 2021-12-1 日,中國大陸地區一共分配瞭 8614 個網段:寫個簡單的腳本程序,將所有網段的 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 地址這裡,有一個數據:這份文件給出今年 6 月份的數據,全國的 IPv4 地址大概在 3.93 億,與前面的統計基本上吻合,可能由於數據時間和其他方面的因素,存在小部分的出入,但總體而言,國內的 IPv4 地址數量大概在這個規模是肯定的。阿裡雲的 IPv4 地址數量弄清瞭國內的 IP 地址數量,那麼問題來瞭,阿裡雲到底有多少 IPv4 地址呢?在淘寶下的一個 IP 地址庫中找到瞭一個數據:https://ip.taobao.com/accurancy 當然,從表格中大陸地區的 IP 地址數量可以看到,這個表格的數據是有些過時瞭,但數量級應該差不瞭太多。從這份數據來看,阿裡巴巴擁有差不多 370W+ 的 IP 地址。而這,僅僅是活躍的 IP 地址數,不代表阿裡所屯的 IP 地址總數。那阿裡究竟屯瞭多少 IP,在公開的信息中,我隻找到瞭一份 2019 年發佈的數據:2019 上半年,阿裡雲的活躍 IP 數量在 330 萬,比上面的淘寶 IP 統計少瞭 40 萬,也就是說 2 年之後活躍 IP 增長瞭 40 萬。而兩年前阿裡雲屯的 IP 總數已經超過 1500W+,兩年之後,這個數據隻會更多,就國內幾傢雲服務廠商而言,真可謂一騎絕塵。從上面圖中還可以看出,亞馬遜不愧是全球最強大的雲計算廠商,足足屯瞭 7500W+ 的 IP 地址,就這還是 2 年前數據。至此,文章開頭的問題算是弄清楚瞭。當然瞭,購買雲服務器得來的 IP 地址也是有租用期限的,比如我去年購買的雲服務器到期之後,裡面的公網 IP 地址也就回收瞭,說不定現在已經分配給別人瞭。雖然 IP 地址緊張,但各雲服務器廠商都屯瞭不少,公網 IP 在池子裡不斷流轉,所以我們才能花個百來十塊就搞來一個。最後,給大傢留一個思考題:0.0.0.0 和 127.0.0.1 這兩個 IP 地址,有什麼不同?歡迎評論區說說你的理解。作者:軒轅之風編輯:陶傢龍來源:轉載自公眾號編程技術宇宙(ID:xuanyuancoding)