自定义 DNS

最近更新时间:2024-12-10 16:58:11

我的收藏

简介

本文档提供关于 SMH SDK 配置自定义 DNS 的说明。

自定义 DNS

一般用来接入 HTTP DNS,实现域名防劫持,DNS 解析加速的效果。
通过 SMHService 的静态成员 dnsFetch 进行 DNS 设置。
SMHService.dnsFetch = QCloudHttpClient.QCloudDnsFetch { hostname ->
//根据hostname获取对应的IP列表
//返回对应的InetAddress列表
return inetAddressList;
}
}

接入 HTTP DNS

以下使用腾讯云 HTTP DNS 作为示例。
1. 初始化腾讯云 HTTP DNS SDK,请参见 腾讯云 HTTP DNS 官方文档
2. 通过 SMHService.dnsFetch 配置腾讯云 HTTP DNS,实现 SMH SDK 接入 HTTP DNS。
SMHService.dnsFetch = QCloudHttpClient.QCloudDnsFetch { hostname ->
val ips = MSDKDnsResolver.getInstance().getAddrByName(hostname)
val ipArr = ips.split(";")
if (ipArr.isEmpty()) {
emptyList<InetAddress>()
} else {
val inetAddressList: MutableList<InetAddress> = ArrayList(ipArr.size)
for (ip in ipArr) {
if ("0" == ip) {
continue
}
try {
val inetAddress = InetAddress.getByName(ip)
inetAddressList.add(inetAddress)
} catch (ignored: UnknownHostException) {
}
}
inetAddressList
}
}