Home

Awesome

Qiniu Happy DNS for Android

@qiniu on weibo LICENSE Build Status GitHub release codecov Latest Stable Version

用途

可以使用114 等第三方dns解析,也可以使用 Doh 协议的 Dns 解析方案,也可以集成 dnspod 等httpdns。另外也有丰富的hosts 域名配置。

安装

直接安装

将sdk jar文件 复制到项目中去,jar包下载地址 下载对应的jar包

通过maven

implementation 'com.qiniu:happy-dns:2.0.1'

使用方法

DnsManager 可以创建一次,一直使用。

    IResolver[] resolvers = new IResolver[3];
    resolvers[0] = AndroidDnsServer.defaultResolver(getContext()); //系统默认 DNS 服务器
    resolvers[1] = new DnsUdpResolver("8.8.8.8"); //自定义 DNS 服务器地址
    resolvers[2] = new DohResolver("https://dns.alidns.com/dns-query");
    DnsManager dns = new DnsManager(NetworkInfo.normal(), resolvers);
    Record[] records = dns.queryRecords("www.qiniu.com");

测试

$ ./gradlew connectedAndroidTest

运行环境

Android 最低要求 2.3

代码贡献

详情参考代码提交指南

贡献记录

联系我们

常见问题

DnsManager dns;
if(DnsManager.needHttpDns()){
	IResolver[] resolvers = new IResolver[2];
    // dohResolver 需要配置一个支持 Doh(Dns over http) 协议的 url
    resolvers[0] = new DnhResolver("https://dns.alidns.com/dns-query");
    resolvers[1] = AndroidDnsServer.defaultResolver(getContext());
    dns = new DnsManager(NetworkInfo.normal, resolvers);
}else{
	IResolver[] resolvers = new IResolver[2];
    resolvers[0] = AndroidDnsServer.defaultResolver(getContext());
    resolvers[1] = new DnsUdpResolver("8.8.8.8");
    dns = new DnsManager(NetworkInfo.normal, resolvers);
}

代码许可

The MIT License (MIT).详情见 License文件.