首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何测试iOS设备网络是使用IPv6还是IPv4?

如何测试iOS设备网络是使用IPv6还是IPv4?
EN

Stack Overflow用户
提问于 2015-12-24 09:23:33
回答 1查看 3K关注 0票数 3

iOS 9将使用IPv6 6专用网络.为了支持IPv6,我的iOS应用程序必须停止使用AF_INET (以及其他许多apis,如structin_addr),而必须使用AF_INET6。

但是它也应该支持iOS 8和更早版本,所以我必须继续使用AF_INET。问题是如何知道系统使用的是哪个网络,IPv6还是IPv4?因此,我可以根据不同的网络环境使用不同的apis。

EN

回答 1

Stack Overflow用户

发布于 2016-08-27 07:26:59

应用程序是在IPv6网络上进行审查的。请确保您的应用程序支持IPv6网络,因为需要IPv6兼容性。

我在AFNetworking类库中使用了这段代码,现在它运行得很好,我的应用程序得到了苹果的批准:)

代码语言:javascript
运行
复制
+ (instancetype)sharedManager {
static AFNetworkReachabilityManager *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{

#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
    struct sockaddr_in6 address;
    bzero(&address, sizeof(address));
    address.sin6_len = sizeof(address);
    address.sin6_family = AF_INET6;
#else
    struct sockaddr_in address;
    bzero(&address, sizeof(address));
    address.sin_len = sizeof(address);
    address.sin_family = AF_INET;
#endif
    _sharedManager = [self managerForAddress:&address];
});

return _sharedManager;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34450362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档