简介
当我们需要在前端项目中使用 DNS 协议时,通常情况下需要借助某些三方库来完成。其中,dns-transmit-service
是一款轻量级的 npm 包,它可以在客户端使用 DNS 协议,并实现两种进行 DNS 解析的方式: 本地解析和 API 解析。
本文将重点介绍 dns-transmit-service
的使用方法,方便读者在自己的项目中应用该工具。
安装
用户可以在项目中使用 npm 来安装 dns-transmit-service
。具体操作如下:
npm install dns-transmit-service
用法
在引用 dns-transmit-service
之前,我们需要先引入该库,如下所示:
import DnsService from 'dns-transmit-service';
- 本地解析
本地解析是指使用客户端自身的 DNS 查询解析。如果本地系统的 DNS 解析速度较快,则此方法的效率将更高。使用方式如下:
const dns = new DnsService({ type: 'LOCAL', dns: null }); // dns 参数为可选,具体说明见后续 API 解析部分 let result = await dns.query('www.google.com', 'A');
在上面的代码中,dns
是 DnsService
的对象。{ type: 'LOCAL' }
表示使用本地 DNS 进行解析。其中,query()
方法第一个参数为域名地址,第二个参数为解析类型。
返回结果为一个 Promise,我们可以通过 await
或 .then()
方法来获取查询结果。
- API 解析
API 解析是指使用第三方的 DNS 服务进行查询解析。使用方式如下:
const dns = new DnsService({ type: 'API', dns: 'http://127.0.0.1/get/IP' }); //dns 参数为请求地址,该地址返回一个带有解析结果的 JSON ,具体格式见后续 API 部分 let result = await dns.query('www.google.com', 'A');
在上面的代码中,dns
是 DnsService
的对象。{ type: 'API', dns: 'http://127.0.0.1/get/IP' }
表示使用 API 进行查询解析。其中,query()
方法第一个参数为域名地址,第二个参数为解析类型。
返回结果为一个 Promise,我们可以通过 await
或 .then()
方法来获取查询结果。
API 解析
对于 API 解析方式,我们需要明确后端返回的数据格式。返回数据格式应为如下格式的 JSON 对象:
{ "result": { "ip": "123.123.123.123" } }
其中,ip
表示查询到的 IP 地址。
参考示例
我们可以通过如下代码进行测试:
-- -------------------- ---- ------- ------ ---------- ---- ----------------------- ----- -------- ------ - ----- --------- - --- ------------ ----- ------ ---- ------------------------- --- ----- -------- - --- ------------ ----- -------- ---- ---- --- --- ------------ - ----- --------------------------------- ----- --- ----------- - ----- -------------------------------- ----- ------------------- ------ ---------------------------------- ------------------ ------ --------------------------------- - -------
总结
dns-transmit-service
是一款可以在前端项目中使用 DNS 协议的 npm 包。本文介绍了 dns-transmit-service
的使用方式,并重点介绍了其支持的本地和 API 解析两种方式。同时,我们还提供了详细的 API 数据格式和参考示例,希望读者可以根据本文了解到更多有用的知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/87048