1. 程式人生 > >iOS開發之蘋果應用6.1日起需相容IPv6,那麼作為開發者我們需要做些什麼呢?【科普IPV6】

iOS開發之蘋果應用6.1日起需相容IPv6,那麼作為開發者我們需要做些什麼呢?【科普IPV6】

我相信現在很多的iOS開發者都知道蘋果要求我們提交到App Store的應用必須支援IPv6。

          1.提到IPV6相關。 那這個直接就聯想到就是關於我們App中網路部的一些內容,是否要進行相應的改變。            首先,解釋下什麼是ipv6?

          IPv6是下一代網際網路的協議,它的提出最初是因為隨著網際網路的迅速發展,IPv4定義的有限地址空間將被耗盡,地址空間的不足必將妨礙網際網路的進一步發展。通俗的說就是,我們的網路ip地址不夠用了, 我們每臺電腦上internet都需要一個身份證明,就是說的IP地址, ipv4的可使用地址為 2的32次方個地址,而ipv6可使用的ip地址為 2的128次方, 哈哈,媽媽再也不用擔心我們ip地址不夠用啦,當然ipv6的好處遠不止只是地址的增加。還有以下好處:

     更小的路由表

         IPv6的地址分配一開始就遵循聚類(Aggregation)的原則,這使得路由器能在路由表中用一條記錄(Entry)表示一片子網,大大減小了路由器中路由表的長度,提高了路由器轉發資料包的速度。

  增強的組播(Multicast)支援以及對流的支援(Flow-control)

  這使得網路上的多媒體應用有了長足發展的機會,為服務質量(QoS)控制提供了良好的網路平臺。

  加入了對自動配置(Auto-configuration)的支援

  這是對DHCP協議的改進和擴充套件,使得網路(尤其是區域網)的管理更加方便和快捷。

  更高的安全性

  在使用IPv6網路中使用者可以對網路層的資料進行加密並對IP報文進行校驗,這極大的增強了網路安全

通過上面的瞭解,大家肯定明白蘋果為什麼要求我們的app要支援ipv6了把,並且態度強硬。  蘋果這是為了以後發展上不受ipv的影響,所以提前快刀斬亂麻。

廢話說了很多了: 參照:http://www.jianshu.com/p/69ed4489762c 

進入正文:  

我們用高階的API完全能夠實現我們的需求,而且高階API封裝的很便於使用,很多底層的像適配IPv6的工作都已經幫我們做好了。而用底層API會有大量的工作要我們自己來做,更容易產生bug。但你如果確實需要用底層的POSIX socket API。


這個方法在著名的Reachability類中是用到了的,而我們常用的網路庫AFNetworking裡面有Reachability。所以用到的同學得好好查一下了,大家沒事可以去看看AFnetworking/issues,然後也可以問一問,暫時貌似是還沒有解決這個問題點選開啟連結 issues,

檢查不相容IPv6的程式碼

搜一下工程裡有沒有下面的這些API,這些都是隻針對IPv4做處理的,有的話就刪了。

inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()

如果用到了下面左邊的這些IPv4的型別,那麼它們相應的IPv6型別也需要做處理

具體的對應欄位為: 大家一定要查一查



最後一步:那就是請嘗試搭建一個ipv6的環境,去測試整個專案,具體的搭建ipv6環境的步驟如下:

本地搭建IPv6測試環境

最後我們來搭一個IPv6的測試環境吧,你所需要的就是一臺用非Wi-Fi的方式上網的Mac電腦。

我們的要做的其實就是用Mac做一個熱點,然後用iPhone連線這個Wi-Fi,聽起來很容易,我相信大家在公司就是這麼幹的吧。

區別是這次我們產生的是一個本地的IPv6 DNS64/NAT64網路,這項功能是OS X 10.11新加的。和我們以前開啟熱點方式不一樣的地方在於,我們在“System Preferences”介面選中“Sharing”的同時,要按住“Option”鍵。


System Preferences

之後在“Sharing”介面中,我們會看到和之前不一樣的地方,就是紅框所標的地方,多了一個叫“Create NAT64 Network”的選框,選中它。


Sharing

之後就是按照正常的建立熱點的流程走完就行了。

現在我們用iPhone連線上這個剛建立好的熱點就可以測試了,注意此時要把iPhone設成飛航模式,以保證只用Wi-Fi上網。

總結:

    1.我相信陸陸續續肯定會有更多的開發者在相容ipv6的過程中會出現各種各樣的問題,到時候再去論壇,技術群中再探索把。