Dog是一个DNS客户端,使用Rust、Dns-over-TLS、DNS-over-HTTPS、Colors、JSON编写

2020-11-09 20:29:26

Dog是一个命令行DNS客户端,和Digit一样,它有彩色的输出,理解正常的命令行参数语法,支持TLS和HTTPS上的DNS协议,并且可以发出JSON。

Dog Example.net使用默认设置查询域Dog Example.net MX...查找MX记录而不是Dog Example.net [email protected]...使用特定的名称服务器代替Dog Example.net [email protected]...使用TCP而不是UDPdog-Q Example.net-t mx-n 1.1.1.1-T,如上所述,但使用显式参数。

<;参数>;人类可读的主机名、名称服务器、类型或类-q,--Query=要查询的主机主机名或IP地址-t,--type=要查询的DNS记录的类型(A,MX,NS...)-n,--namerver=要向其发送数据包的名称服务器的地址--class=要查询的DNS记录的网络类(IN,CH,HS)。

--EDNS=设置是否选择加入EDNS(禁用、隐藏、显示)--txid=数字将事务ID设置为特定值-Z=调整设置不常见的协议级调整。

-U,--UDP使用基于UDP-T的DNS协议,--TCP使用基于TCP-S的DNS协议,--TLS使用基于TLS的DNS协议-H,--HTTPS使用基于HTTPS的DNS协议。

-1,--短短模式:只显示第一个结果-J,--json将输出显示为JSON--COLOR,--COLOR=何时为输出着色(始终、自动、从不)--秒不格式化持续时间,以秒显示--时间打印响应到达的时间。

Dog是用Rust语言编写的。你需要Rustc 1.45.0或更高版本。推荐的安装Rust for Development的方法是从官方下载页面,使用Rustup。

Just命令运行器可用于以类似于Make的方式运行一些有用的开发命令。运行Just--Tasks以获取可用命令的概述。

如果您正在为自己编译副本,请确保运行Cargo Build--Release或只运行Build-Release以从发布模式优化中获益。将生成的二进制文件(位于目标/发布目录中)复制到$PATH中的一个文件夹中。/usr/local/bin通常是一个不错的选择。

要编译和安装手册页,您将需要panoc。Just man命令将把Markdown编译成手册页,放在目标/man目录中。要使用它们,请将它们复制到man可以读取的目录中。/usr/local/share/man通常是一个不错的选择。

Dog有一个编写为SpeSheet Check Documents的集成测试套件。如果您安装了副本,则可以运行:

SpecSheet将通过网络发出DNS请求,检查Dog是否返回结果并且没有崩溃,从而测试编译后的二进制文件。