阿里云首页 HTTPDNS

IPv6异步解析接口

注意

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

目标域名

IPv4、IPv6同时解析

说明

同时查询IPv4、IPv6,返回字典,字典KEY对应的值分别是

IPv4:ALICLOUDHDNS_IPV4

IPv6:ALICLOUDHDNS_IPV6

返回字典格式:

{

ALICLOUDHDNS_IPV4: ['xxx.xxx.xxx.xxx', 'xxx.xxx.xxx.xxx'],

ALICLOUDHDNS_IPV6: ['xx:xx:xx:xx:xx:xx:xx:xx', 'xx:xx:xx:xx:xx:xx:xx:xx']

}

接口定义

- (NSDictionary <NSString *, NSArray *>*)getIPv4_v6ByHostAsync:(NSString *)host;

参数说明

参数

类型

是否必填

说明

host

NSString

目标域名