npm 包 @sagi.io/dns-over-https 使用教程

阅读时长 3 分钟读完

前言

DNS(Domain Name System)是一个网络协议,其作用是将网站的域名转换为 IP 地址,使得客户端可以识别并连接到正确的服务器。但是,DNS 查询通常是明文传输的,容易被劫持或篡改。为此,DNS-over-HTTPS(简称DoH)应运而生,它将 DNS 查询使用 HTTPS 协议进行加密传输,提高了安全性和隐私性。本文将介绍 @sagi.io/dns-over-https 这个 npm 包的使用方法,帮助大家更好地使用 DoH。

安装

使用 npm 可以轻松安装 @sagi.io/dns-over-https 包。在命令行窗口中运行以下命令:

使用

DNS-over-HTTPS 解析

@sagi.io/dns-over-https 提供了 DoH 请求的方法,可以将域名解析成 IP 地址。以下是解析的方法:

resolve() 方法接收一个域名作为输入,并返回一个 Promise 对象。Promise 对象的 resolve 值是一个包含 IP 地址的对象的数组。在上面的示例中,我们使用了 async/await 语法来等待 resolve() 的执行结果,并输出第一个 IP 地址。

设置 DoH 服务器

@sagi.io/dns-over-https 默认使用了"https://dns.google/dns-query"这个由 Google 提供的 DoH 服务器。但是,如果需要更改 DoH 服务器,可以在 resolve() 方法中添加要使用的服务器地址。

在上面的示例中,我们将 DoH 服务器的 URL 更改为 https://doh.example.com。由于不是所有的 DoH 服务器都是公共的,所以您需要自己拥有或使用它们,以防它们被恶意使用。

设置超时

有时候,DNS-over-HTTPS 请求需要等待一段时间才能返回响应。如果不设置超时,程序可能会一直等待下去,浪费时间和资源。为了避免这种情况,我们可以设置一个超时值来控制请求等待的时间。以下是设置超时的方法:

在上面的示例中,我们将超时时间设置为 5 秒。如果请求超过 5 秒,它将被视为超时,方法将返回错误。

总结

@sagi.io/dns-over-https 是一个非常方便的 npm 包,可以帮助我们使用 DoH 请求域名并解析成 IP 地址。本文详细介绍了包的使用方法,包括解析、设置 DoH 服务器和设置超时。希望本文对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5d51ab1864dac6711b

纠错
反馈