阿里云首页 HTTPDNS

IPv4异步解析接口

异步解析接口

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

注意

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

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

接口定义

String getIpByHostAsync(String host);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

代码示例

// httpdns为初始化获取的服务实例
String ip = httpdns.getIpByHostAsync("www.aliyun.com");

异步解析获取解析结果列表

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

注意

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

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

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

接口定义

String[] getIpsByHostAsync(String host);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

代码示例

// httpdns为初始化获取的服务实例
String[] ips = httpdns.getIpsByHostAsync("www.aliyun.com");

启用IP优选

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

注意

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

接口定义

 void setIPProbeList(List<IPProbeItem> ipProbeList);

参数说明

参数

类型

是否必填

说明

ipProbeList

List<IPProbeItem>

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

代码示例

// httpdns为初始化获取的服务实例
ArrayList<IPProbeItem> list = new ArrayList<IPProbeItem>();
list.add(new IPProbeItem("www.aliyun.com", 8080));
httpdns.setIPProbeList(list);

对指定域名进行探测

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

注意

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

接口定义

 public IPProbeItem(String hostname, int port)

参数说明

参数

类型

是否必填

说明

hostname

String

域名(如www.aliyun.com)

port

int

端口(如8080)

代码示例

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