HTTPDNS场景下兼容IPv6-Only网络环境需要注意的细节
当您使用IP形式的URL进行网络请求时,IPv4与IPv6的IP地址使用方式略有不同。
IPv4:http://1.1.1.1/path
IPv6:http://[2001:db8:c000:221::]/path
即在URL中使用IPv6地址时,需要在IPv6地址基础上额外家还是那个“[]”.
为了方便开发者的使用,HTTPDNS提供了适配URL格式的IP获取接口:
-[HttpDnsService getIpByHostAsyncInURLFormat:]
。当您通过HTTPDNS进行IP获取,并使用该IP进行基于URL的网络访问时,您可以通过上述API直接获取符合URL使用场景,格式化后的IP信息,如*1.1.1.1*,*[2001:db8:c000:221::]*。
如果您仅仅为了获取精准的IP信息并另做他用,您可以继续使用老接口:
-[HttpDnsService getIpByHostAsync:]
。
设置是否开启IPv6
设置是否开启IPv6解析,开启时会请求解析IPv6地址。
开启后调用
getIPv6ByHostAsync:
接口使用。开启IPv6解析后,SDK在IPv6-Only网络环境下,对IPv4解析结果不在自动转换为IPv6地址,
getIpsByHostAsync:
返回 IPv4 地址,getIPv6ByHostAsync:
返回 IPv6 地址。
接口定义
- (void)enableIPv6:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 是否开启,默认为NO |
IPv6异步解析域名
IPv6异步解析域名,返回IPv6地址,开启IPv6结果解析后, 若域名存在IPv6地址,则返回IPv6解析结果。例:域名:ipv6.sjtu.edu.cn,IPv4 地址:202.120.2.47,IPv6地址:2001:da8:8000:1:0:0:0:80,解析成功后接口返回结果:2001:da8:8000:1:0:0:0:80。
未开启IPv6解析时返回为null。
接口定义
- (NSString *)getIPv6ByHostAsync:(NSString *)host;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
host | NSString | 是 | 目标域名 |
在文档使用中是否遇到以下问题
更多建议
匿名提交