互聯網協議版本6(IPv6)是互聯網協議(IP)的最新版本,它是爲網絡上的計算機提供識別和定位系統並通過互聯網路由流量的通信協議。
因特網連接的用戶,設備和應用程序的數量正在快速增長,因此原始版本的Internet協議(IPv4)的可用地址池正在迅速耗盡。 IPv4使用32位地址,並且可以支持直接連接到互聯網的43億設備。替換協議稱爲IPv6,使用128位地址並提供約三百四十萬億。
如今,Apple拒絕應用程序,因爲應用程序應該支持IPv6網絡。在我們的環境中,我們也遇到了與應用程序相同的情況,我們發現了這個問題的解決方案之一。大多數應用程序不需要任何更改,因爲IPv6已經被NSURLSession和CFNetwork API支持。如果您的應用程序使用IPv4特定的API或硬編碼的IP地址,則需要進行一些更改。
Apple還建議不要長期使用IP地址Literals,並確保您未將點表示法中的IPv4地址字面值傳遞給API,例如getaddrinfo和SCNetworkReachabilityCreateWithName。相反,我們可以使用高級網絡框架和地址無關的API版本,例如getaddrinfo和getnameinfo,並傳遞它們的主機名或完全限定的域名(FQDN)。如果您正在使用AFNetworking Library,請確保將它更新到3.x以上的版本,因爲它們似乎已經更新了少量的內容。我們要做的AFNetworking庫的一些變化類AFNetworkReachabilityManager
+ (instancetype)sharedManager {
static AFNetworkReachabilityManager *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
struct sockaddr_in address;
bzero(&address, sizeof(address));
address.sin_len = sizeof(address);
address.sin_family = AF_INET6; //Change AF_INET TO AF_INET6
_sharedManager = [self managerForAddress:&address];
});
return _sharedManager;
}
我們需要作出上述模塊中的一些變化對我們的應用程序,並添加到庫中。完成此操作後,我們可以通過在MAC中啓用Internet共享選項來測試應用程序的IPv6。
測試IPv6 DNS64/NAT64兼容性 首先,我們需要確保Mac通過Wi-Fi連接到互聯網。導航到系統首選項並選擇共享選項,並確保在選擇共享選項之前需要按住選項鍵。選擇Internet共享,然後選擇創建NAT64網絡複選框。現在我們需要選擇提供互聯網連接的網絡接口,如以太網,Wi-Fi,藍牙PAN。
我在這裏選擇Wi-Fi共享互聯網連接並配置Wi-Fi網絡選項。一旦配置了Wi-Fi,然後啓用互聯網共享選項。
一旦我們選擇互聯網共享,它會要求提示開始共享設備的互聯網訪問。
現在IOS設備已連接到共享網絡,我們可以檢查該應用是否在該網絡上工作。
這不是一個編程問題,真的。這是網絡配置。 –
基本上你需要確保你已經在你的項目中更新了所有的'NSULRConnection'到'NSURLSession',這幾乎是歡樂的第一步。 – holex