Windows下dig的安裝和使用

Windows下dig的安裝和使用

dig是一個linux/unix下用於查看域名詳情的小工具,類似於 nslookup ,但比 nslookup 的功能更強大,顯示的信息更全面。而 windows 系統下只帶有 nslookup 這個命令,下面是在 windows 系統下安裝 dig 命令的方法。

首先下載 dig 包,下載地址是:
http://down.51cto.com/data/767704

將此壓縮包解壓至例如 c:\dig 目錄

檢查 %WINDOWS%\system32 下有沒有 msvcr70.dll ,如果有則刪除 c:\dig\msvcr70.dll 。


接下來編輯 c:\dig\resolv.conf 文件(如果沒有此文件可以新建,也可以不做編輯,使用時候直接@server),需要將你所用的DNS服務器在此文件中指定,格式跟linux下的 /etc/resolv.conf 相同,例如:

nameserver 61.144.56.101
nameserver 202.96.128.68


編輯保存後將此文件拷貝至 %WINDOWS%\system32\drivers\etc 目錄下

接下來你可以將 c:\dig 目錄加到系統環境變量 path 中。

安裝完畢,可以試試了,使用命令如下:

dig --help
dig -h
dig sina.com.cn 運行結果如下:

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 291
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

;; QUESTION SECTION:
;sina.com.cn.                   IN      A

;; ANSWER SECTION:
sina.com.cn.            349     IN      A       202.108.33.32

;; AUTHORITY SECTION:
sina.com.cn.            17227   IN      NS      ns1.sina.com.cn.
sina.com.cn.            17227   IN      NS      ns3.sina.com.cn.
sina.com.cn.            17227   IN      NS      ns2.sina.com.cn.

;; ADDITIONAL SECTION:
ns1.sina.com.cn.        82579   IN      A       202.106.184.166
ns2.sina.com.cn.        82579   IN      A       61.172.201.254
ns3.sina.com.cn.        82579   IN      A       202.108.44.55

;; Query time: 40 msec
;; SERVER: 61.144.56.101#53(61.144.56.101)
;; WHEN: Sat Sep 29 14:20:12 2007
;; MSG SIZE rcvd: 147


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

dig命令使用詳解
2007-06-08 15:27


用途
DNS 查詢實用程序。

語法
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n ][-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...]

dig [-h]

dig [global-queryopt...] [query...]

描述
dig (域信息搜索器)命令是一個用於詢問 DNS 域名服務器的靈活的工具。它執行 DNS 搜索,顯示從受請求的域名服務器返回的答覆。多數 DNS 管理 員利用 dig 作爲 DNS 問題的故障診斷,因爲它靈活性好、易用、輸出清晰。雖然通常情況下 dig 使用命令行參數,但它也可以按批處理模式從文 件讀取搜索請求。不同於早期版本,dig 的 BIND9 實現允許從命令行發出多個查詢。除非被告知請求特定域名服務器,dig 將嘗試 /etc/resolv.conf 中列舉的所有服務器。當未指定任何命令行參數或選項時,dig 將對“.”(根)執行 NS 查詢。

標誌

-b address 設置所要詢問地址的源 IP 地址。這必須是主機網絡接口上的某一合法的地址。
-c class 缺省查詢類(IN for internet)由選項 -c 重設。class 可以是任何合法類,比如查詢 Hesiod 記錄的 HS 類或查詢 CHAOSNET 記錄的 CH 類。
-f filename 使 dig 在批處理模式下運行,通過從文件 filename 讀取一系列搜索請求加以處理。文件包含許多查詢;每行一個。文件中的每一項都應該以和使用命令行接口對 dig 的查詢相同的方法來組織。
-h 當使用選項 -h 時,顯示一個簡短的命令行參數和選項摘要。
-k filename 要簽署由 dig 發送的 DNS 查詢以及對它們使用事務簽名(TSIG)的響應,用選項 -k 指定 TSIG 密鑰文件。
-n 缺省情況下,使用 IP6.ARPA 域和 RFC2874 定義的二進制標號搜索 IPv6 地址。爲了使用更早的、使用 IP6.INT 域和 nibble 標籤的 RFC1886 方法,指定選項 -n(nibble)。
-p port# 如果需要查詢一個非標準的端口號,則使用選項 -p。port# 是 dig 將發送其查詢的端口號,而不是標準的 DNS 端口號 53。該選項可用於測試已在非標準端口號上配置成偵聽查詢的域名服務器。
-t type 設置查詢類型爲 type。可以是 BIND9 支持的任意有效查詢類型。缺省查詢類型是 A,除非提供 -x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區域傳輸。當需要增量區域傳輸(IXFR)時,type 設置爲 ixfr=N。增量區域傳輸將包含自從區域的 SOA 記錄中的序列號改爲 N 之後對區域所做的更改。
-x addr 逆向查詢(將地址映射到名稱)可以通過 -x 選項加以簡化。 addr 是一個以小數點爲界的 IPv4 地址或冒號爲界的 IPv6 地址。當使用這個選項時,無需提供 name、class 和 type 參 數。dig 自動運行類似 11.12.13.10.in-addr.arpa 的域名查詢,並分別設置查詢類型和類爲 PTR 和 IN。
-y name: key 您可以通過命令行上的 -y 選項指定 TSIG 密鑰;name 是 TSIG 密碼的名稱,key 是實際的密碼。密碼是 64 位加密字符 串,通常由 dnssec-keygen(8)生成。當在多用戶系統上使用選項 -y 時應該謹慎,因爲密碼在 ps(1)的輸出或 shell 的歷史 文件中可能是可見的。當同時使用 dig 和 TSCG 認證時,被查詢的名稱服務器需要知道密碼和解碼規則。在 BIND 中,通過提供正確的密碼和 named.conf 中的服務器聲明實現。

參數
global-queryopt... 全局查詢選項
query 查詢選項

查詢選項
dig 提供查詢選項號,它影響搜索方式和結果顯示。一些在查詢請求報頭設置或復位標誌位,一部分決定顯示哪些回覆信息,其他的確定超時和重試戰略。每個查詢選項 被帶前綴(+)的關鍵字標識。一些關鍵字設置或復位一個選項。通常前綴是求反關鍵字含義的字符串 no。其他關鍵字分配各選項的值,比如超時時間間隔。它 們的格式形如 +keyword=value。查詢選項是:

+[no]tcp
查詢域名服務器時使用 [不使用] TCP。缺省行爲是使用 UDP,除非是 AXFR 或 IXFR 請求,才使用 TCP 連接。
+[no]vc
查詢名稱服務器時使用 [不使用] TCP。+[no]tcp 的備用語法提供了向下兼容。vc 代表虛電路。
+[no]ignore
忽略 UDP 響應的中斷,而不是用 TCP 重試。缺省情況運行 TCP 重試。
+domain=somename
設定包含單個域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域僞指令指定,並且啓用搜索列表處理,好像給定了 +search 選項。
+[no]search
使用 [不使用] 搜索列表或 resolv.conf 中的域僞指令(如果有的話)定義的搜索列表。缺省情況不使用搜索列表。
+[no]defname
不建議看作 +[no]search 的同義詞。
+[no]aaonly
該選項不做任何事。它用來提供對設置成未實現解析器標誌的 dig 的舊版本的兼容性。
+[no]adflag
在查詢中設置 [不設置] AD(真實數據)位。目前 AD 位只在響應中有標準含義,而查詢中沒有,但是出於完整性考慮在查詢中這種性能可以設置。
+[no]cdflag
在查詢中設置 [不設置] CD(檢查禁用)位。它請求服務器不運行響應信息的 DNSSEC 合法性。
+[no]recursive
切換查詢中的 RD(要求遞歸)位設置。在缺省情況下設置該位,也就是說 dig 正常情形下發送遞歸查詢。當使用查詢選項 +nssearch 或 +trace 時,遞歸自動禁用。
+[no]nssearch
這個選項被設置時,dig 試圖尋找包含待搜名稱的網段的權威域名服務器,並顯示網段中每臺域名服務器的 SOA 記錄。
+[no]trace
切換爲待查詢名稱從根名稱服務器開始的代理路徑跟蹤。缺省情況不使用跟蹤。一旦啓用跟蹤,dig 使用迭代查詢解析待查詢名稱。它將按照從根服務器的參照,顯示來自每臺使用解析查詢的服務器的應答。
+[no]cmd
設定在輸出中顯示指出 dig 版本及其所用的查詢選項的初始註釋。缺省情況下顯示註釋。
+[no]short
提供簡要答覆。缺省值是以冗長格式顯示答覆信息。
+[no]identify
當啓用 +short 選項時,顯示 [或不顯示] 提供應答的 IP 地址和端口號。如果請求簡短格式應答,缺省情況不顯示提供應答的服務器的源地址和端口號。
+[no]comments
切換輸出中的註釋行顯示。缺省值是顯示註釋。
+[no]stats
該查詢選項設定顯示統計信息:查詢進行時,應答的大小等等。缺省顯示查詢統計信息。
+[no]qr
顯示 [不顯示] 發送的查詢請求。缺省不顯示。
+[no]question
當返回應答時,顯示 [不顯示] 查詢請求的問題部分。缺省作爲註釋顯示問題部分。
+[no]answer
顯示 [不顯示] 應答的回答部分。缺省顯示。
+[no]authority
顯示 [不顯示] 應答的權限部分。缺省顯示。
+[no]additional
顯示 [不顯示] 應答的附加部分。缺省顯示。
+[no]all
設置或清除所有顯示標誌。
+time=T
爲查詢設置超時時間爲 T 秒。缺省是 5 秒。如果將 T 設置爲小於 1 的數,則以 1 秒作爲查詢超時時間。
+tries=A
設置向服務器發送 UDP 查詢請求的重試次數爲 A,代替缺省的 3 次。如果把 A 小於或等於 0,則採用 1 爲重試次數。
+ndots=D
出 於完全考慮,設置必須出現在名稱 D 的點數。缺省值是使用在 /etc/resolv.conf 中的 ndots 語句定義的,或者是 1,如果沒有 ndots 語句的話。帶更少點數的名稱被解釋爲相對名稱,並通過搜索列表中的域或文件 /etc/resolv.conf 中的域僞指令進行搜索。
+bufsize=B
設置使用 EDNS0 的 UDP 消息緩衝區大小爲 B 字節。緩衝區的最大值和最小值分別爲 65535 和 0。超出這個範圍的值自動舍入到最近的有效值。
+[no]multiline
以詳細的多行格式顯示類似 SOA 的記錄,並附帶可讀註釋。缺省值是每單個行上顯示一條記錄,以便於計算機解析dig 的輸出。
多條查詢
dig 的 BIND9 支持在命令行上指定多個查詢(支持 -f 批處理文件選項的附加功能)。每條查詢可以使用自己的標誌位、選項和查詢選項。

在這種情況下,在上面描述的命令行語法中,每條查詢自變量代表一個個別查詢。每一條由任意標準選項和標誌、待查詢名稱、可選查詢類型和類以及任何適用於該查詢的查詢選項。

也可以使用對所有查詢均有效的查詢選項全局集合。全局查詢選項必須位於命令行上第一個名稱、類、類型、選項、標誌和查詢選項的元組之前。任何全局查詢選項(除了 +[no]cmd 選項)可以被下面的查詢特別選項重設。例如:

dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
顯 示 dig 如何從命令行出發進行三個查詢:一個針對 www.isc.org的任意查詢、一個 127.0.0.1 的逆向查詢,以及一個 isc.org 的 NS 記錄查詢。應用了 +qr 的全局查詢選項,以便 dig 顯示進行每條查詢的初始查詢。最後那個查詢有一個本地查詢選項 +noqr,表示 dig 在搜索 isc.org 的 NS 記錄時不顯示初始查詢。

示例
一個典型的 dig 調用類似:

dig @server name type
其中:

server
待 查詢名稱服務器的名稱或 IP 地址。可以是用點分隔的 IPv4 地址或用冒號分隔的 IPv6 地址。當由主機提供服務器參數時,dig 在查詢域名 服務器前先解析那個名稱。如果沒有服務器參數可以提供,dig 參考 /etc/resolv.conf,然後查詢列舉在那裏的域名服務器。顯示來自域名 服務器的應答。
name
將要查詢的資源記錄的名稱。
type
顯示所需的查詢類型 - ANY、A、MX、SIG,以及任何有效查詢類型等。如果不提供任何類型參數,dig 將對紀錄 A 執行查詢。


下面是 dig 的一些比較常用的命令:

# dig 最基本的用法
dig @server sina.com.cn.

# 用 dig查看 zone 數據傳輸

dig @server zx.xmgd.com. AXFR

# 用 dig查看 zone 數據的增量傳輸

dig @server zx.xmgd.com. IXFR=N

# 用 dig查看反向解析

dig -x 210.52.83.228 @server

# 查找一個域的授權 dns 服務器

dig xmgd.com. +nssearch

# 從根服務器開始追蹤一個域名解析過程

dig xmgd.com +trace

# 查看你使用的是哪個 F root dns server

dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

# 查看 bind 的版本號

dig @bind_dns_server CHAOS TXT version.bind


————————————————————————————————————————————————

Dig簡介:
Dig是一個在類Unix命令行模式下查詢DNS包括NS記錄,A記錄,MX記錄等相關信息的工具。由於一直缺失Dig man page文檔,本文就權當一個dig使用嚮導吧。

 Dig的源碼是ISC BIND大包的一部分,但是大多編譯和安裝Bind的文檔都不把它包括在內,但是在linux系統下,它通常是某個包的一部分,在Gentoo下是bind-tools,在Redhat/Fedora下是 bind-utils,或者在Debian下是 dnsutils。  

如果你要查找Bind的配置相關的信息,你參考我的文章:Bind for the mall LAN(http://www.madboa.com/geek/soho-bind/)。

看懂默認輸出:

最簡單最常見的查詢是查詢一臺主機,但是默認情況下,Dig的輸出信息很詳細。你可能不需要所有的輸出,但是它確實值得知道。下面是一個帶有註釋的查詢:

$ dig www.isc.org

上面是我調用dig 的命令行。

; <<>> DiG 9.2.3 <<>> www.isc.org
;; global options: printcmd

Dig的部分輸出告訴我們一些有關於它的版本信息(version 9.2.3)和全局的設置選項,如果+nocmd在命令行下是第一個參數的話,那麼這部分輸出可以通過加+nocmd的方式查詢出來。

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43071
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3


在這裏,Dig告訴我們一些從DNS返回的技術信息,這段信息可以用選項 +[no]comments來控制顯示,但是小心,禁止掉comments也可能關閉一些其它的選項。

;; QUESTION SECTION:
;www.isc.org. IN A

在這個查詢段中,Dig顯示出我們查詢的輸出,默認的查詢是查詢A記錄,你可以顯示或者禁止掉這些用+[no]question選項
;; ANSWER SECTION:
www.isc.org. 600 IN A 204.152.184.88

最後,我們得到我們查詢的結果。www.isc.org 的地址是204.152.184.8,我不知道爲什麼你們更喜歡過濾掉這些輸出,但是你可以用+[no]answer保留這些選項。

;; AUTHORITY SECTION:
isc.org. 2351 IN NS ns-int.isc.org.
isc.org. 2351 IN NS ns1.gnac.com.
isc.org. 2351 IN NS ns-ext.isc.org.

這段權威說明告訴我們哪個DNS服務器給我們提供權威的答案。在這個例子中,isc.org有3個Name Server,你可以用+[no]authority選項保留這段輸出。

;; ADDITIONAL SECTION:
ns1.gnac.com. 171551 IN A 209.182.216.75
ns-int.isc.org. 2351 IN A 204.152.184.65
ns-int.isc.org. 2351 IN AAAA 2001:4f8:0:2::15

這些額外選項很有代表性地包含了列出的權威DNS的IP地址,這段輸出可以用+[no]additional選項保留。

;; Query time: 2046 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Aug 27 08:22:26 2004
;; MSG SIZE rcvd: 173

最後一段默認輸出包含了查詢的統計數據,可以用+[no]stats保留。



我們可以查詢什麼?


Dig可以讓你有效地查詢DNS,最常用的查詢是A記錄,TXT(文本註釋),MX記錄,NS記錄,或者任意綜合查詢。

查找yahoo.com的A記錄:
dig yahoo.com A +noall +answer

查找yahoo.com MX記錄的列表:
dig yahoo.com MX +noall +answer

查找yahoo.com的權威DNS:
dig yahoo.com NS +noall +answer

查詢上面所有的記錄:
dig yahoo.com ANY +noall +answer

在現在這種IPv4和IPV6混用的情況下,你也可以使用AAAA的選項查詢主機的IPv6 AAAA記錄:
dig www.isc.org AAAA +short

如果你要查詢的域允許轉發,你也可以查詢到相關的信息,比如DNS記錄在internet上的生存週期,但是,現在只有很少的DNS允許無限制轉發。


我們怎樣查詢?

獲得精簡答案?

當我們需要一個快速回答時,+short選項是你最好的朋友:
dig www.isc.org +short
204.152.184.88

獲得一個不是十分精簡的答案?

精簡答案和只有一個答案是不一樣的,獲得沒有附加信息的詳細答案的方法是使用+noall選項,這樣就只保留你想要的輸出。
下面是隻有一個答案的精簡查詢,最後包含所有的配置信息,包括TTL數據,格式化的BIND配置信息。

$ dig fsf.org mx +short
20 mx20.gnu.org.
30 mx30.gnu.org.
10 mx10.gnu.org.

$ dig +nocmd fsf.org mx +noall +answer
fsf.org. 3583 IN MX 30 mx30.gnu.org.
fsf.org. 3583 IN MX 10 mx10.gnu.org.
fsf.org. 3583 IN MX 20 mx20.gnu.org.


獲得一個詳細答案?

通過它的man page,你可以通過+multiline選項獲得冗長的多行模式人性化註釋的DSN的SOA記錄,一般來說,用+multiline選項獲得的信息可以顯示很多,就像BIND配置文件一樣。

$ dig +nocmd ogi.edu any +multiline +noall +answer
ogi.edu. 14267 IN A 129.95.59.31
ogi.edu. 14267 IN MX 5 cse.ogi.edu.
ogi.edu. 14267 IN MX 15 hermes.admin.ogi.edu.
ogi.edu. 14267 IN SOA zeal.admin.ogi.edu. hostmaster.admin.ogi.edu. (
 200408230 ; serial
 14400 ; refresh (4 hours)
&nb

——————————————————————————————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章