溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux如何使用dig命令挖掘域名解析信息

發布時間:2021-10-21 15:59:23 來源:億速云 閱讀:461 作者:小新 欄目:系統運維

這篇文章將為大家詳細講解有關linux如何使用dig命令挖掘域名解析信息,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


命令行工具 dig 是用于解析域名和故障排查的一個利器。

從主要功能上來說,dignslookup 之間差異不大,但 dig 更像一個加強版的 nslookup,可以查詢到一些由域名服務器管理的信息,這在排查某些問題的時候非常有用??偟膩碚f,dig 是一個既簡單易用又功能強大的命令行工具。(LCTT 譯注:dignslookup 行為的主要區別來自于 dig 使用是是操作系統本身的解析庫,而 nslookup 使用的是該程序自帶的解析庫,這有時候會帶來一些行為差異。此外,從表現形式上看,dig 返回是結果是以 BIND 配置信息的格式返回的,也帶有更多的技術細節。)

dig 最基本的功能就是查詢域名信息,因此它的名稱實際上是“域名信息查詢工具Domain Information Groper”的縮寫。dig 向用戶返回的內容可以非常詳盡,也可以非常簡潔,展現內容的多少完全由用戶在查詢時使用的選項來決定。

我只需要查詢 IP 地址

如果只需要查詢某個域名指向的 IP 地址,可以使用 +short 選項:

$ dig facebook.com +short31.13.66.35

在查詢的時候發現有的域名會指向多個 IP 地址?這其實是網站提高其可用性的一種措施。

$ dig networkworld.com +short151.101.2.165151.101.66.165151.101.130.165151.101.194.165

也正是由于這些網站通過負載均衡實現高可用,在下一次查詢的時候,或許會發現這幾個 IP 地址的排序有所不同。(LCTT 譯注:瀏覽器等應用默認會使用返回的第一個 IP 地址,因此這樣實現了一種簡單的負載均衡。)

$ dig networkworld.com +short151.101.130.165151.101.194.165151.101.2.165151.101.66.165

標準返回

dig 的標準返回內容則包括這個工具本身的一些信息,以及請求域名服務器時返回的響應內容:

$ dig networkworld.com ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>*gt; networkworld.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39932;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 65494;; QUESTION SECTION:;networkworld.com.              IN      A ;; ANSWER SECTION:networkworld.com.       300     IN      A       151.101.194.165networkworld.com.       300     IN      A       151.101.130.165networkworld.com.       300     IN      A       151.101.66.165networkworld.com.       300     IN      A       151.101.2.165 ;; Query time: 108 msec;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Thu Feb 13 13:49:53 EST 2020;; MSG SIZE  rcvd: 109

由于域名服務器有緩存機制,返回的內容可能是之前緩存好的信息。在這種情況下,dig 最后顯示的查詢時間Query time會是 0 毫秒(0 msec):

;; Query time: 0 msec        <==;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Thu Feb 13 15:30:09 EST 2020;; MSG SIZE  rcvd: 109

向誰查詢?

在默認情況下,dig 會根據 /etc/resolv.conf 這個文件的內容決定向哪個域名服務器獲取查詢結果。你也可以使用 @ 來指定 dig 請求的域名服務器。

在下面的例子中,就指定了 dig 向 Google 的域名服務器 8.8.8.8 查詢域名信息。

$ dig @8.8.8.8 networkworld.com ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> @8.8.8.8 networkworld.com; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21163;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;networkworld.com.              IN      A ;; ANSWER SECTION:networkworld.com.       299     IN      A       151.101.130.165networkworld.com.       299     IN      A       151.101.66.165networkworld.com.       299     IN      A       151.101.194.165networkworld.com.       299     IN      A       151.101.2.165 ;; Query time: 48 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Thu Feb 13 14:26:14 EST 2020;; MSG SIZE  rcvd: 109

想要知道正在使用的 dig 工具的版本,可以使用 -v 選項。你會看到類似這樣:

$ dig -vDiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu

或者這樣的返回信息:

$ dig -vDiG 9.11.4-P2-RedHat-9.11.4-22.P2.el8

如果你覺得 dig 返回的內容過于詳細,可以使用 +noall(不顯示所有內容)和 +answer(僅顯示域名服務器的響應內容)選項,域名服務器的詳細信息就會被忽略,只保留域名解析結果。

$ dig networkworld.com +noall +answer ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> networkworld.com +noall +answer;; global options: +cmdnetworkworld.com.       300     IN      A       151.101.194.165networkworld.com.       300     IN      A       151.101.130.165networkworld.com.       300     IN      A       151.101.66.165networkworld.com.       300     IN      A       151.101.2.165

批量查詢域名

如果你要查詢多個域名,可以把這些域名寫入到一個文件內(domains),然后使用下面的 dig 命令遍歷整個文件并給出所有查詢結果。

$ dig +noall +answer -f domainsnetworkworld.com.       300     IN      A       151.101.66.165networkworld.com.       300     IN      A       151.101.2.165networkworld.com.       300     IN      A       151.101.130.165networkworld.com.       300     IN      A       151.101.194.165world.std.com.          77972   IN      A       192.74.137.5uushenandoah.org.       1982    IN      A       162.241.24.209amazon.com.             18      IN      A       176.32.103.205amazon.com.             18      IN      A       176.32.98.166amazon.com.             18      IN      A       205.251.242.103

你也可以在上面的命令中使用 +short 選項,但如果其中有些域名指向多個 IP 地址,就無法看出哪些 IP 地址對應哪個域名了。在這種情況下,更好地做法應該是讓 awk 對返回內容進行處理,只留下第一列和最后一列:

$ dig +noall +answer -f domains | awk '{print $1,$NF}'networkworld.com. 151.101.66.165networkworld.com. 151.101.130.165networkworld.com. 151.101.194.165networkworld.com. 151.101.2.165world.std.com. 192.74.137.5amazon.com. 176.32.98.166amazon.com. 205.251.242.103amazon.com. 176.32.103.205

關于“linux如何使用dig命令挖掘域名解析信息”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女