Dog-用于DNS查詢的命令行工具


系統(tǒng)環(huán)境
Ubuntu 20.04.1 LTS

安? ? 裝
1.45.0,我們使用apt安裝的版本達(dá)不到這個要求,下面我們會使用其他方式安裝rustc。下面需要先安裝libssl-dev安裝包:bob@ubuntu-20-04:~$?sudo?apt?install?-y?cargo?libssl-dev
<以上代碼可復(fù)制粘貼,可往左滑>
下面安裝rust,由于按照官方文檔安裝rust,有時(shí)下載沒有進(jìn)度,所以在這里先修改鏡像源,改成國內(nèi)的,然后執(zhí)行安裝:
bob@ubuntu-18-04:~$?export?RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
bob@ubuntu-18-04:~$?export?RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
bob@ubuntu-18-04:~$?curl?https://sh.rustup.rs?-sSf?|?sh
<以上代碼可復(fù)制粘貼,可往左滑>

在下面的地方,選擇選項(xiàng)1.


安裝完成,需要執(zhí)行下面命令,才能正常使用cargo命令
bob@ubuntu-18-04:~$?source?$HOME/.cargo/env
<以上代碼可復(fù)制粘貼,可往左滑>
下面檢查rustc的版本:
bob@ubuntu-18-04:~$?rustc?--version
rustc?1.47.0?(18bf6b4f0?2020-10-07)
<以上代碼可復(fù)制粘貼,可往左滑>

從github下載dog安裝包,并解壓:
bob@ubuntu-20-04:~$?wget?https://github.com/ogham/dog/archive/v0.1.0.tar.gz
bob@ubuntu-20-04:~$?tar?xvf?v0.1.0.tar.gz
<以上代碼可復(fù)制粘貼,可往左滑>
進(jìn)入解壓出來的目錄,并構(gòu)建dog程序:
bob@ubuntu-20-04:~$?cd?dog-0.1.0/
<以上代碼可復(fù)制粘貼,可往左滑>

.cargo文件夾,進(jìn)去新建一個config配置文件,將下面內(nèi)容添加進(jìn)去這樣修改默認(rèn)倉庫,更新速度就快許多了:bob@ubuntu-20-04:~/dog-0.1.0$?cat?~/.cargo/config
[source.crates-io]
registry?=?"https://github.com/rust-lang/crates.io-index"
#?替換成你偏好的鏡像源
replace-with?=?'sjtu'
#replace-with?=?'ustc'
#?清華大學(xué)
[source.tuna]
registry?=?"https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
#?中國科學(xué)技術(shù)大學(xué)
[source.ustc]
registry?=?"git://mirrors.ustc.edu.cn/crates.io-index"
#?上海交通大學(xué)
[source.sjtu]
registry?=?"https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
#?rustcc社區(qū)
[source.rustcc]
registry?=?"git://crates.rustcc.cn/crates.io-index"
<以上代碼可復(fù)制粘貼,可往左滑>
修改完成之后,再回到dog-0.1.0目錄里面,重新構(gòu)建dog程序,并運(yùn)行測試一下:
bob@ubuntu-18-04:~/dog-0.1.0$?cargo?build
bob@ubuntu-18-04:~/dog-0.1.0$?cargo?test
<以上代碼可復(fù)制粘貼,可往左滑>


確保dog命令從任何目錄運(yùn)行,將二進(jìn)制文件放在/usr/local/bin目錄中。
bob@ubuntu-18-04:~/dog-0.1.0$?sudo?cp?-p?~/dog-0.1.0/target/debug/dog?/usr/local/bin
<以上代碼可復(fù)制粘貼,可往左滑>
運(yùn)行dog工具,查看以下版本:
bob@ubuntu-18-04:~$?dog?--version
dog?●?command-line?DNS?client
v0.1.0?[]?built?on?2020-11-19?(pre-release!)
https://dns.lookup.dog/
bob@ubuntu-18-04:~$
<以上代碼可復(fù)制粘貼,可往左滑>

可以使用源碼包里面的命令補(bǔ)全腳本,當(dāng)需要提示的時(shí)候按兩下TAB鍵,顯示子命令:
bob@ubuntu-18-04:~$?source?~/dog-0.1.0/completions/dog.bash
<以上代碼可復(fù)制粘貼,可往左滑>
![]()
如何使用dog命令
查詢A記錄
bob@ubuntu-18-04:~$?dog?www.baidu.com
CNAME?www.baidu.com.????5s???"www.a.shifen.com."
????A?www.a.shifen.com.?4s???180.101.49.12
????A?www.a.shifen.com.?4s???180.101.49.11
<以上代碼可復(fù)制粘貼,可往左滑>
查詢NS記錄
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."
<以上代碼可復(fù)制粘貼,可往左滑>
使用指定的域名服務(wù)器地址查詢
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."
<以上代碼可復(fù)制粘貼,可往左滑>
JSON格式輸出
bob@ubuntu-18-04:~$?dog?A?www.baidu.com?-J
{"responses":[{"additionals":[],"answers":[{"class":"IN","domain":"www.a.shifen.com.","name":"www.baidu.com.","ttl":5,"type":"CNAME"},{"address":"180.101.49.11","class":"IN","name":"www.a.shifen.com.","ttl":4,"type":"A"},{"address":"180.101.49.12","class":"IN","name":"www.a.shifen.com.","ttl":4,"type":"A"}],"authorities":[],"queries":[{"class":"IN","name":"www.baidu.com.","type":1}]}]}
<以上代碼可復(fù)制粘貼,可往左滑>

查看幫助
bob@ubuntu-18-04:~$?dog?--help
<以上代碼可復(fù)制粘貼,可往左滑>

推薦閱讀:
良許被36氪創(chuàng)始人接見了?。ǘ鄨D預(yù)警)
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!
