Dog-用於DNS查詢的命令列工具
Dog是一個用於DNS查詢的 行工具,它的工作原理類似於dig。它具有豐富多彩的輸出,支援DNS-over-TLS 和 DNS-over-HTTPS協議,並且可以輸出JSON格式。 |
Ubuntu 20.04.1 LTS
Dog是用Rust編寫的DNS查詢工具。Dog需要rustc的版本高於
1.45.0
,我們使用apt安裝的版本達不到這個要求,下面我們會使用其他方式安裝rustc。下面需要先安裝libssl-dev安裝包:
bob@ubuntu-20-04:~$ sudo apt install -y cargo libssl-dev
下面安裝rust,由於按照官方文件安裝rust,有時下載沒有進度,所以在這裡先修改映象源,改成國內的,然後執行安裝:
bob@ubuntu-18-04:~$ export RUSTUP_DIST_SERVER= bob@ubuntu-18-04:~$ export RUSTUP_UPDATE_ROOT=/rustup bob@ubuntu-18-04:~$ curl | sh
在下面的地方,選擇選項1.
安裝完成,需要執行下面
,才能正常使用cargo命令:
bob@ubuntu-18-04:~$ source $HOME/.cargo/env
下面檢查rustc的版本:
bob@ubuntu-18-04:~$ rustc --version rustc 1.47.0 (18bf6b4f0 2020-10-07)
從github下載dog安裝包,並解壓:
bob@ubuntu-20-04:~$ wget bob@ubuntu-20-04:~$ tar xvf v0.1.0.tar.gz
進入解壓出來的目錄,並構建dog程式:
bob@ubuntu-20-04:~$ cd dog-0.1.0/
使用預設的倉庫地址更新會比較慢,在這裡按ctrl+c結束更新,在家目錄會生成一個
.cargo
資料夾,進去新建一個
config
配置檔案,將下面內容新增進去這樣修改預設倉庫,更新速度就快許多了:
bob@ubuntu-20-04:~/dog-0.1.0$ cat ~/.cargo/config [source.crates-io] registry = " # 替換成你偏好的映象源 replace-with = 'sjtu' #replace-with = 'ustc' # 清華大學 [source.tuna] registry = " # 中國科學技術大學 [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" # 上海交通大學 [source.sjtu] registry = " # rustcc社群 [source.rustcc] registry = "git://crates.rustcc.cn/crates.io-index"
修改完成之後,再回到dog-0.1.0目錄裡面,重新構建dog程式,並執行測試以下:
bob@ubuntu-18-04:~/dog-0.1.0$ cargo build bob@ubuntu-18-04:~/dog-0.1.0$ cargo test
確保dog命令從任何目錄執行,將二進位制檔案放在
/usr/local/bin
目錄中。
bob@ubuntu-18-04:~/dog-0.1.0$ sudo cp -p ~/dog-0.1.0/target/debug/dog /usr/local/bin
執行dog工具,檢視以下版本:
bob@ubuntu-18-04:~$ dog --version dog ● command-line DNS client v0.1.0 [] built on 2020-11-19 (pre-release!) bob@ubuntu-18-04:~$
可以使用原始碼包裡面的命令補全
,當需要提示的時候按兩下TAB鍵,顯示子命令:
bob@ubuntu-18-04:~$ source ~/dog-0.1.0/completions/dog.bash
現在,讓我們看看如何使用dog命令查詢不同的DNS記錄。
bob@ubuntu-18-04:~$ dog CNAME . 5s "www.a.shifen.com." A A
bob@ubuntu-18-04:~$ dog aliyun.com NS NS aliyun.com. 5s "ns3.aliyun.com." NS aliyun.com. 5s "ns5.aliyun.com." NS aliyun.com. 5s "ns4.aliyun.com."
bob@ubuntu-18-04:~$ dog google.com MX @1.1.1.1 MX google.com. 6m23s 30 "alt2.aspmx.l.google.com." MX google.com. 6m23s 40 "alt3.aspmx.l.google.com." MX google.com. 6m23s 10 "aspmx.l.google.com." MX google.com. 6m23s 50 "alt4.aspmx.l.google.com." MX google.com. 6m23s 20 "alt1.aspmx.l.google.com."
bob@ubuntu-18-04:~$ dog A -J {"responses":[{"additionals":[],"answers":[{"class":"IN","domain":"www.a.shifen.com.","name":".","ttl":5,"type":"CNAME"},{"address":"180.101.49.11","class":"IN","name":"},{"address":"180.101.49.12","class":"IN","name":"}],"authorities":[],"queries":[{"class":"IN","name":".","type":1}]}]}
bob@ubuntu-18-04:~$ dog --help
Dog是一個用於DNS查詢的命令列工具,它的工作原理類似於dig。它具有豐富多彩的輸出,支援DNS-over-TLS 和 DNS-over-HTTPS協議,並且可以輸出JSON格式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2789956/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【工具分享】idomain一個命令列域名查詢工具AI命令列
- nslookup命令怎麼用?如何查詢DNS解析故障?DNS
- nslookup 是一個用於查詢域名系統 (DNS) 的命令列工具。在 Windows 中逐漸被其他網路工具所取代, PowerShell 中的 Resolve-DnsName cmdletDNS命令列Windows
- 命令列查詢天氣的正確方式命令列
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- Native for sql 查詢列欄位非命令列形式SQL命令列
- DNS查詢順序DNS
- Linux基礎命令---host域名查詢工具Linux
- DNS 查詢原理詳解DNS
- 5 個用於在 Linux 終端中查詢域名 IP 地址的命令Linux
- 在 Linux 中如何從命令列查詢 VirtualBox 版本Linux命令列
- mysql命令列查詢亂碼怎麼解決?MySql命令列
- SPF PermError:DNS 查詢過多ErrorDNS
- DNS查詢順序以及方式DNS
- FFmpeg應用實踐之命令查詢
- Dreamweaver關於媒體查詢命令的使用方法
- 用 Plumbum 開發 Python 命令列工具Python命令列
- 用於與非 Linux 使用者一同工作的 Linux 命令列工具Linux命令列
- 如何使用命令列工具檢查資料庫?命令列資料庫
- DNS協議 是什麼?說說DNS 完整的查詢過程?DNS協議
- 用 Rust 打造你的第一個命令列工具Rust命令列
- 基於node和npm的命令列工具——tive-cliNPM命令列
- 基於Python命令列的NBA文字直播小工具Python命令列
- linux下查詢命令的技巧Linux
- JDK常用的命令列工具JDK命令列
- 陣列的主元素查詢陣列
- 檔案查詢命令
- sql常用查詢命令SQL
- mysql查詢結果多列拼接查詢MySql
- ROS命令列工具ROS命令列
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- 二維陣列中的查詢陣列
- ffmpeg命令分類查詢
- Linux系列之查詢命令Linux
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 適用於即席查詢(Ad-Hoc)的OLAP引擎
- 【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開SQLServer
- Click: 命令列工具神器命令列