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

前言

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


猜你喜欢

  • npm 包 raised 使用教程

    介绍 raised 是一个用于指定或检测 DOM 元素是否被增高的 JavaScript 库。 通过监听元素高度的变化事件,可以在元素高度变化时触发回调函数。 安装 raised 可以通过 npm 安...

    3 年前
  • npm 包 @mistong/eui-tab 使用教程

    在前端开发中,很多时候需要使用一些开源的库来提高效率。@mistong/eui-tab 就是一款能够帮助我们实现标签页功能的 npm 包。 安装 使用 npm 安装 @mistong/eui-tab ...

    3 年前
  • NPM 包 html2json-parser 使用教程

    HTML 在前端开发中是大家不可避免的内容之一,但是在某些场景下,我们需要将 HTML 转换为 JSON 以便于我们处理数据。这时,我们可以使用一个 NPM 包来完成这个转换操作,它就是 html2j...

    3 年前
  • npm 包 @autoit-gui-skeleton/ags-component-google-analytics 使用教程

    前言 在前端开发中,Google Analytics 是一款非常重要的统计工具,可以用来追踪网站流量、用户行为、转化率等等。为了方便在项目中的使用,我们可以使用 npm 包 @autoit-gui-s...

    3 年前
  • npm 包 v-viewerjs 使用教程

    在前端开发中,图片预览功能是常见的需求。由于 v-viewerjs 提供了一个功能齐全、易于使用的图片预览组件,本文将介绍该组件的使用方法。 1. 安装 使用 npm 安装 v-viewerjs 模块...

    3 年前
  • npm 包 remap-istanbul-adhoc 使用教程

    在前端开发中,单元测试是不可或缺的重要环节。覆盖率是评估单元测试有效性的一个重要指标之一。而 Istanbul 是一个流行的 JavaScript 代码覆盖率工具,提供了丰富的报告和分析数据。

    3 年前
  • npm 包 marked-renderer-pdf 使用教程

    简介 marked-renderer-pdf 是一个基于 marked 的 npm 包,可以将 markdown 文件转化为 PDF 文件,支持中文排版和不同的排版风格。

    3 年前
  • npm 包 node-red-contrib-dynamorse-cinecoder 使用教程

    Node-RED 是一个流程编程工具,让用户可以通过将各种节点串联起来来实现想要的功能。node-red-contrib-dynamorse-cinecoder 是一个用于视频转码的 Node-RED...

    3 年前
  • 使用 React Native Network Notifier 发送网络通知的教程

    React Native Network Notifier 是一个 npm 包,可以让您在 React Native 应用中轻松地发送网络信号通知。该包使用了 React Native 的 NetIn...

    3 年前
  • npm 包 treezor-js-client 使用教程

    在现代化的 Web 开发中,前端技术越来越多样化复杂化,需要处理的业务逻辑也越来越复杂。在这样的大环境下,npm 包成为了前端开发中无法或缺的重要组成部分,它可以加快开发效率、降低成本、提供复用性高的...

    3 年前
  • npm 包 lichess-opening-explorer 使用教程

    在国际象棋中,开局是极其重要的。为了更好地了解不同的开局,我们可以使用 lichess-opening-explorer 这个 npm 包来分析棋局的开局。本文将详细介绍该 npm 包的使用方法,以及...

    3 年前
  • npm 包 html2json-loader 使用教程

    在前端开发中,我们经常需要将 HTML 代码转换成 JSON 格式,以方便传输、存储或进一步处理。而 npm 包 html2json-loader 就是一个非常方便的工具,它可以将 HTML 代码转换...

    3 年前
  • npm 包 machinepack-youtubenodemachines 使用教程

    随着互联网的发展,视频已经成为了人们最常用的媒体形式之一,而 YouTube 作为全球最大的视频分享网站,其在全球范围内的用户规模也越来越大。为了便于开发者快速搭建一个基于 YouTube 的视频平台...

    3 年前
  • npm 包 ngx-ad-dfp 使用教程

    在前端开发中,经常需要往页面中添加广告。然而,广告代码往往比较冗长,而且不同广告平台的代码也略有区别。为了简化广告的添加过程,并且保持一定的灵活性,我们可以使用一个 npm 包叫做 ngx-ad-df...

    3 年前
  • 【前端技术】npm 包 touch-finger 使用教程

    前言 随着移动端设备的普及以及触控屏幕的普及,js 事件中 touch 类型的事件逐渐受到关注。而 touch 事件的开发相对麻烦,特别是 touchend 事件在手指离开屏幕时触发过程中,事件的判断...

    3 年前
  • npm 包 typed-machine 使用教程

    在前端开发中,类型验证是一个非常重要的部分。没有类型检查往往会导致很多奇怪的错误。JavaScript 作为一门动态类型语言,其优点是灵活,但缺点则是容易引入错误。

    3 年前
  • npm 包 @sky-foundry/vue-directive-tooltip 使用教程

    Vue.js 是一个流行的前端框架,提供了丰富的组件和指令。@sky-foundry/vue-directive-tooltip 是 Vue.js 的一个指令包,提供了快速创建提示(Tooltip)的...

    3 年前
  • npm 包 vue-cli-plugin-multipages 使用教程

    前言 在前端项目开发中,很多时候我们都需要构建多页面(Multipages)应用。这些应用中的每一个页面都是单独的 HTML 文件,并且它们之间没有像单页应用那样的路由机制。

    3 年前
  • npm 包 pauldron-policy 使用教程

    简介 pauldron-policy 是一个基于 node.js 平台的 npm 包,用于快速创建、编写和管理访问控制策略。它提供了可读性强、易于编写和配置的 JSON 规则集合,并支持多种类型的身份...

    3 年前
  • npm包story2frontify使用教程

    什么是story2frontify Story2frontify是一个npm包,用于将Vue.js或React击穿的Storybook文档样式与Frontify品牌管理工具集成。

    3 年前

相关推荐

    暂无文章