一期奔、什么是IPV6
首先IPV6厅须,是對(duì)IPV4地址空間的擴(kuò)充仿畸。目前當(dāng)我們用iOS設(shè)備連接上Wifi、4G朗和、3G等網(wǎng)絡(luò)時(shí)错沽,設(shè)備被分配的地址均是IPV4地址,但是隨著運(yùn)營(yíng)商和企業(yè)逐漸部署IPV6 DNS64/NAT64網(wǎng)絡(luò)之后眶拉,設(shè)備被分配的地址會(huì)變成IPV6的地址千埃,而這些網(wǎng)絡(luò)就是所謂的IPV6-Only網(wǎng)絡(luò),并且仍然可以通過(guò)此網(wǎng)絡(luò)去獲取IPV4地址提供的內(nèi)容忆植》趴桑客戶端向服務(wù)器端請(qǐng)求域名解析谒臼,首先通過(guò)DNS64 Server查詢IPv6的地址,如果查詢不到耀里,再向DNS Server查詢IPv4地址蜈缤,通過(guò)DNS64 Server合成一個(gè)IPV6的地址,最終將一個(gè)IPV6的地址返回給客戶端冯挎。
二底哥、檢查不兼容IPv6的代碼
搜一下工程里有沒有下面的這些API,這些都是只針對(duì)IPv4做處理的房官,有的話就刪了趾徽。
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
如果用到了下面左邊的這些IPv4的類型,那么它們相應(yīng)的IPv6類型也需要做處理
IPV4
IPV6
AF_INET
AF_INET6
PE_INET
PE_INET6
struct in_addr
Struct in_addr6
struct sockadd_in
struct sockaddr_in6
kDNSServiceProtocol_IPv4
kDNSServiceProtocol_IPv6
IPv4--IPv6
三翰守、本地搭建IPv6測(cè)試環(huán)境
需要的就是一臺(tái)用非Wi-Fi的方式上網(wǎng)的Mac電腦孵奶,產(chǎn)生的是一個(gè)本地的IPv6 DNS64/NAT64網(wǎng)絡(luò),這項(xiàng)功能是OS X 10.11新加的潦俺。
在“System Preferences”界面選中“Sharing”的同時(shí)拒课,要按住“Option”鍵徐勃。之后在“Sharing”界面中事示,我們會(huì)看到和之前不一樣的地方,就是紅框所標(biāo)的地方僻肖,多了一個(gè)叫“Create NAT64 Network”的選框肖爵,選中它。
之后就是按照正常的創(chuàng)建熱點(diǎn)的流程走完就行了臀脏。
現(xiàn)在我們用iPhone連接上這個(gè)剛創(chuàng)建好的熱點(diǎn)就可以測(cè)試了劝堪,注意此時(shí)要把iPhone設(shè)成飛行模式,以保證只用Wi-Fi上網(wǎng)揉稚。
四秒啦、解決辦法
1.升級(jí)AFN3.0+
2.升級(jí)ShareSDK3.3+
搭建IPv6的環(huán)境
參考文章:http://jingyan.baidu.com/article/0bc808fc56a9bf1bd585b96d.html