文档

IPv4异步解析接口

更新时间:

异步解析获取单个IPv4地址

使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。

重要

  • 解析结果返回的IP是服务端返回的IP数组中的第一个IP,不一定是最优IP。

  • 如果您需要返回的IP是最优IP,您可以使用启用IP优选接口,使返回的IP为最优IP。

接口定义

@Deprecated
String getIpByHostAsync(String host);
重要

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

String getIPv4ForHostAsync(String host);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

代码示例

// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getIPv4ForHostAsync方法
String ip = httpdns.getIpByHostAsync("www.aliyun.com");

// 2.3.2版本开始,建议使用该接口
String ip = httpdns.getIPv4ForHostAsync("www.aliyun.com");

异步解析获取IPv4地址列表

异步解析接口,获取IPv4列表,首先查询缓存,若存在则返回结果,若不存在返回长度为0的String数组并且进行异步域名解析更新缓存。

重要

  • 返回的IP列表就是服务端返回的列表,在服务端的权重是一样,也就是没有优先顺序。

  • 若接口返回长度为0的String数组,为避免影响业务请降级到Local DNS解析策略。

  • 关于异步解析接口调用的最佳实践,请参考如何利用HTTPDNS降低DNS解析开销

接口定义

@Deprecated
String[] getIpsByHostAsync(String host);
重要

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

String[] getIPv4ListForHostAsync(String host);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

代码示例

// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getIPv4ListForHostAsync方法
String[] ips = httpdns.getIpsByHostAsync("www.aliyun.com");

// 2.3.2版本开始,建议使用该接口
String[] ips = httpdns.getIPv4ListForHostAsync("www.aliyun.com");

异步解析获取解析结果

异步解析接口,获取解析结果,可以指定要解析的IP类型,首先查询缓存,若存在则返回结果,若不存在返回内容为空的结果对象,并且进行异步域名解析更新缓存。

重要

  • 若接口返回空内容的结果对象,为避免影响业务请降级到Local DNS解析策略。

  • 关于异步解析接口调用的最佳实践,请参考如何利用HTTPDNS降低DNS解析开销

  • 该接口也可以用于解析IPv6。

接口定义

@Deprecated
HTTPDNSResult getIpsByHostAsync(String host, RequestIpType type);
重要

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

HTTPDNSResult getHttpDnsResultForHostAsync(String host, RequestIpType type);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

type

RequestIpType

枚举类型,代表解析哪种类型的IP:

  • v4:需要解析的类型为IPv4。

  • v6:需要解析的类型为IPv6。

  • both:需要解析的类型为IPv4和IPv6。

  • auto:需要解析和当前网络环境匹配的IP类型。

代码示例

// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getHttpDnsResultForHostAsync方法
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", RequestIpType.both);

// 2.3.2版本开始,建议使用该接口
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com", RequestIpType.both);

// 获取IPv4的解析结果
result.getIps();
// 获取IPv6的解析结果
result.getIpv6s();

启用IP优选

设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。

重要

SDK 1.1.5及以上版本支持。

接口定义

@Deprecated 
void setIPProbeList(List<IPProbeItem> ipProbeList);
重要

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

void setIPRankingList(List<IPRankingBean> ipRankingList);

参数说明

2.3.1及以下版本参数

参数

类型

是否必填

说明

ipProbeList

List<IPProbeItem>

设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。

2.3.2及以上版本参数

参数

类型

是否必填

说明

ipRankingList

List<IPRankingBean>

设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。

代码示例

// httpdns为初始化获取的服务实例
// 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
ArrayList<IPProbeItem> list = new ArrayList<IPProbeItem>();
list.add(new IPProbeItem("www.aliyun.com", 8080));
httpdns.setIPProbeList(list);

// 2.3.2版本开始,建议使用该接口
ArrayList<IPRankingBean> list = new ArrayList<IPRankingBean>();
list.add(new IPRankingBean("www.aliyun.com", 8080));
httpdns.setIPRankingList(list);

对指定域名进行探测

指定要探测的域名及探测时的端口号。

重要

SDK V1.1.5及以上版本支持。

接口定义

2.3.1及以下版本接口定义

 public IPProbeItem(String hostname, int port)

2.3.2及以上版本接口定义

public IPRankingBean(String hostName, int port)

参数说明

参数

类型

是否必填

说明

hostname

String

域名(如www.aliyun.com)

port

int

端口(如8080)

代码示例

2.3.1及以下版本代码示例

IPProbeItem probeItem = new IPProbeItem("www.aliyun.com", 8080);

2.3.2及以下版本代码示例

IPRankingBean ipRankingBean = new IPRankingBean("www.aliyun.com", 8080);
  • 本页导读 (0)
文档反馈