#dns-queries #https #sending #hostname #default #d-oh

bin+lib dnsoverhttps

通过发送 HTTPS 上的 DNS 查询来解决域名

6 个版本 (破坏性更新)

使用旧的 Rust 2015

0.6.0 2018 年 9 月 20 日
0.5.0 2018 年 6 月 5 日
0.4.0 2018 年 4 月 1 日
0.3.0 2018 年 4 月 1 日
0.1.0 2018 年 2 月 6 日

#14#hostname

每月 22 次下载

MIT 许可证

12KB
165

dnsoverhttps - D'oh!

通过发送 HTTPS 上的 DNS 查询来解决域名。默认使用 https://1.1.1.1 作为 DNS 解析器,由 Cloudflare 托管。根据 Cloudflare,这是一个以隐私为先的消费者 DNS 服务。更多信息请见 https://1.1.1.1

基于 https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-07

缺点

  • 当指定 URL 时,必须同时指定主机名以用于 HTTP。从服务器收到的 TLS 证书已验证,但没有检查正确的主机名。
  • 目前仅处理 A 和 AAAA 记录(IPv4 & IPv6,当递归解析时隐式处理 CNAMES)

示例:默认解析器

let addr = dnsoverhttps::resolve_host("example.com");

示例:自定义解析器

let client = dnsoverhttps::Client::from_url_with_hostname("https://172.217.21.110/experimental", "dns.google.com".to_string()).unwrap();
let addr = client.resolve_host("example.com");

命令行界面使用方法

dnsoverhttps 包含一个小型的 CLI 工具,提供 host 功能以解析域名

$ host example.com
example.com has address 2606:2800:220:1:248:1893:25c8:1946
example.com has address 93.184.216.34

安装

cargo install dnsoverhttps

许可证

MIT。请参阅 LICENSE

依赖项

~24–35MB
~599K SLoC