文档

IPv6异步解析接口

更新时间:

重要

HTTPDNS场景下兼容IPv6-Only网络环境需要注意以下问题:

  • 当您使用IP形式的URL进行网络请求时,IPv4与IPv6的IP地址使用方式略有不同。

    • IPv4:http://x.x.x.x/path

    • IPv6:http://[2001:db8:c000:221::]/path

    即在URL中使用IPv6地址时,需要在IPv6地址基础上额外家还是那个“[]”.

    为了方便开发者的使用,HTTPDNS提供了适配URL格式的IP获取接口:-[HttpDnsService getIpByHostAsyncInURLFormat:]

  • 当您通过HTTPDNS进行IP获取,并使用该IP进行基于URL的网络访问时,您可以通过上述API直接获取符合URL使用场景,格式化后的IP信息,如*x.x.x.x*,*[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 地址:192.168.XX.XX,IPv6地址:2001:da8:8000:1:0:0:XX:XX,解析成功后接口返回结果:2001:da8:8000:1:0:0:XX:XX。

重要

未开启IPv6解析时返回为null。

接口定义

 - (NSString *)getIPv6ByHostAsync:(NSString *)host;
重要

2.1.0版本对接口名称进行了优化,如果接入的SDK是2.1.0版本或2.1.0以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

- (NSString *)getIPv6ForHostAsync:(NSString *)host;

参数说明

参数

类型

是否必填

说明

host

NSString

目标域名。

IPv6异步解析域名获取结果列表

说明

IPv6异步解析域名,返回IPv6地址,开启IPv6结果解析后, 若域名存在IPv6地址,则返回IPv6解析结果。例:域名:ipv6.sjtu.edu.cn,IPv4 地址:192.168.XX.XX,IPv6地址:2001:da8:8000:1:0:0:XX:XX,解析成功后接口返回结果:2001:da8:8000:1:0:0:XX:XX。

重要

未开启IPv6解析时返回为null。

接口定义

- (NSArray *)getIPv6sByHostAsync:(NSString *)host
重要

2.1.0版本对接口名称进行了优化,如果接入的SDK是2.1.0版本或2.1.0以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

- (NSArray *)getIPv6ListForHostAsync:(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;
重要

2.1.0版本对接口名称进行了优化,如果接入的SDK是2.1.0版本或2.1.0以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

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

参数说明

参数

类型

是否必填

说明

host

NSString

目标域名。

根据当前网络栈自动解析

说明

如果当前网络是IPv4Only,只返回IPv4地址;如果当前网络是IPv6Only,只返回IPv6地址;如果当前网络是双栈,则同时返回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']

}

重要

未开启IPv6解析时返回为null。

接口定义

-(NSDictionary <NSString *, NSArray *>*)autoGetIpsByHostAsync:(NSString *)host;
重要

2.1.0版本对接口名称进行了优化,如果接入的SDK是2.1.0版本或2.1.0以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

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

参数说明

参数

类型

是否必填

说明

host

NSString

目标域名。

  • 本页导读 (0)
文档反馈