Windows 下的Dig的安装及应用集合(一)
Dig是linux中的域名解析工具,功能比nslookup強很多,使用也很方便,不用象nslookup總是set不停。
Dig是domain information groper的縮寫,知道了來源想必大家也就容易記住這條命令了。
Dig現(xiàn)在已經(jīng)有人移植到了window上,接下來我們我們來實現(xiàn)一下,我的操作系統(tǒng)為windows2008R2
首先是下載:
Download
dig version?9.3.2
Create a folder ??c:\dig
Download?dig-files3.zip?and save it to?c:\dig ? ??
Use Open source?7-zip?to extract all the files inside dig-files3.zip to?c:\dig
http://members.shaw.ca/nicholas.fong/dig/dig-files3.zip
Note: If msvcr70.dll already exists in %systemroot%\system32\ , then you can delete c:\dig\msvcr70.dll
2 Installation and setup:
File name:?CmdHereAsAdmin.inf?? (right click the link, choose save; then on your local copy, right click the .inf file, choose Install) ? ?
(Thanks to Aaron Spurlock of Ogden, UT, USA and Patryk Bratkowski for their contributions) ? ?
Click Start ...click Computer, click C: ?
right click on c:\dig , choose?Cmd Prompt Here As Administrator
copy resolv.conf ?%systemroot%\system32\drivers\etc\
Windows XP ?Windows 2000 ?
Click start...run... type ?cmd ? ?
cd c:\dig ? ?
copy resolv.conf ?%systemroot%\system32\drivers\etc\
(4) Add path: ??
(thanks to Jason Partridge of Akento Technology Sourcing, Bloomington, IN, USA for his?contribution) ? ?
Windows 7: Click Start ?... type environment variables ... choose "edit environment variables for your account" ? ?
Windows Vista: Click?Start?...click Control Panel, in the Search Box, type environment variables ... choose "edit environment variables for your account" ? ?
Windows XP : Click..Start...click Control Panel ...in Category "Performance and Maintenance", System, Advanced, Environment Variables. ? ?
Windows 2000 : right click My Computer icon, choose properties, Advanced, Environment Variables.
Look in the top half of the?screen, "User variables" section. ? ?
If a PATH variable exists, double click the variable PATH to enter edit mode, ? ?
append ?;c:\dig ?to the Variable value. ? ?
If the PATH variable does not exist, click the New button, ? ?
Variable name: ?PATH ? ?
Variable value: ?c:\dig
Dig命令的用法 ??
最簡單最常見的查詢是查詢一臺主機,但是默認情況下,Dig的輸出信息很詳細。你可能不需要所有的輸出, ? ?
但是它確實值得知道。下面是一個帶有注釋的查詢:
Dig yahoo.com
Dig yahoo.com a +noall +answer
Dig yahoo.com mx +noall +answer
Dig yahoo.com ns +noall +answer
如果在公司內(nèi)網(wǎng)需要解析mx ns的話我們需要將本地 dns設(shè)置為公網(wǎng)202.106.0.20
通過nslookup, server 202.106.0.20 ;set type=mx ;yahoo.com
而通過dig的話更方便
Dig @202.106.0.20 mx yahoo.com +noall +answer
Dig @202.106.0.20 mx yahoo.com
具體具體解析見下:
dig?www.baidu.com
上面是我調(diào)用dig 的命令行。 ? ?
; <<>> DiG 9.2.3 <<>>www.baidu.com ? ?
;; global options: ?printcmd ? ?
Dig的部分輸出告訴我們一些有關(guān)于它的版本信息(version 9.2.3)和全局的設(shè)置選項,如果+nocmd在命令行下 ? ?
是第一個參數(shù)的話,那么這部分輸出可以通過加+nocmd的方式查詢出來。 ? ?
;; Got answer: ? ?
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1227 ? ?
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 ? ?
在這里,Dig告訴我們一些從DNS返回的技術(shù)信息,這段信息可以用選項 +[no]comments來控制顯示,但是小心 ? ?
,禁止掉comments也可能關(guān)閉一些其它的選項。 ? ?
;; QUESTION SECTION: ? ?
;www.baidu.com. ? ? ? ? ? ? ? ? ? IN ? ? ?A ? ?
在這個查詢段中,Dig顯示出我們查詢的輸出,默認的查詢是查詢A記錄,你可以顯示或者禁止掉這些用+[no] ? ?
question選項 ? ?
;; ANSWER SECTION: ? ?
www.baidu.com. ? ? ? ? ? ?22 ? ? IN ? ? ?A ? ? ? 220.181.111.86 ? ?
最后,我們得到我們查詢的結(jié)果。www.baidu.com的地址是220.181.111.86,我不知道為什么你們更喜歡過濾掉 ? ?
這些輸出,但是你可以用+[no]answer保留這些選項。 ? ?
;; AUTHORITY SECTION: ? ?
Dig www.baidu.com ns
這段權(quán)威說明告訴我們哪個DNS服務(wù)器給我們提供權(quán)威的答案。在這個例子中,baidu.com有4個Name Server,你 ??
可以用+[no]authority選項保留這段輸出。 ? ?
;; ADDITIONAL SECTION: ? ?
ns3.baidu.com. 5936 IN A 220.181.37.10
ns2.baidu.com. 12360 IN A 61.135.165.235
dns.baidu.com. 12360 IN A 202.108.22.220
ns4.baidu.com. 14220 IN A 220.181.38.10 ??
這些額外選項很有代表性地包含了列出的權(quán)威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 ? ?
最后一段默認輸出包含了查詢的統(tǒng)計數(shù)據(jù),可以用+[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的權(quán)威DNS: ? ?
dig yahoo.com NS +noall +answer ? ?
查詢上面所有的記錄: ? ?
dig yahoo.com ANY +noall +answer ? ?
在現(xiàn)在這種IPv4和IPV6混用的情況下,你也可以使用AAAA的選項查詢主機的IPv6 AAAA記錄: ? ?
dig?www.isc.org?AAAA +short ? ?
如果你要查詢的域允許轉(zhuǎn)發(fā),你也可以查詢到相關(guān)的信息,比如DNS記錄在internet上的生存周期,但是,現(xiàn) ? ?
在只有很少的DNS允許無限制轉(zhuǎn)發(fā)。 ? ?
我們怎樣查詢? ? ?
獲得精簡答案? ? ?
當我們需要一個快速回答時,+short選項是你最好的朋友: ? ?
dig?www.isc.org?+short ? ?
204.152.184.88 ? ?
獲得一個不是十分精簡的答案? ? ?
精簡答案和只有一個答案是不一樣的,獲得沒有附加信息的詳細答案的方法是使用+noall選項,這樣就只保留 ? ?
你想要的輸出。 ? ?
下面是只有一個答案的精簡查詢,最后包含所有的配置信息,包括TTL數(shù)據(jù),格式化的BIND配置信息。\
dig baidu.com mx +short ??
20 mx1.baidu.com.
20 jpmx.baidu.com.
20 mx50.baidu.com.
10 mx.mailcdn.baidu.com. ??
dig +nocmd baidu.com mx +noall +answer ? ?
baidu.com. 6919 IN MX 20 jpmx.baidu.com.
baidu.com. 6919 IN MX 20 mx50.baidu.com.
baidu.com. 6919 IN MX 10 mx.mailcdn.baidu.com.
baidu.com. 6919 IN MX 20 mx1.baidu.com. ??
獲得一個詳細答案? ? ?
通過它的man page,你可以通過+multiline選項獲得冗長的多行模式人性化注釋的DSN的SOA記錄,一般來說, ? ?
用+multiline選項獲得的信息可以顯示很多,就像BIND配置文件一樣。 ? ?
dig +nocmd yahoo.com any +multiline +noall +answer ? ?
yahoo.com. 193 IN A 206.190.36.45
yahoo.com. 193 IN A 98.139.183.24
yahoo.com. 193 IN A 98.138.253.109
yahoo.com. 83725 IN NS ns2.yahoo.com.
yahoo.com. 83725 IN NS ns5.yahoo.com.
yahoo.com. 83725 IN NS ns6.yahoo.com.
yahoo.com. 83725 IN NS ns3.yahoo.com.
yahoo.com. 83725 IN NS ns8.yahoo.com.
yahoo.com. 83725 IN NS ns4.yahoo.com.
yahoo.com. 83725 IN NS ns1.yahoo.com.
yahoo.com. 674 IN SOA ns1.yahoo.com. hostmaster.yahoo-inc.com. (
2013072310 ; serial
3600 ; refresh (1 hour)
300 ; retry (5 minutes)
1814400 ; expire (3 weeks)
600 ; minimum (10 minutes)
)
yahoo.com. 1213 IN MX 1 mta7.am0.yahoodns.net.
yahoo.com. 1213 IN MX 1 mta6.am0.yahoodns.net.
yahoo.com. 1213 IN MX 1 mta5.am0.yahoodns.net. ??
查找PTR記錄? ? ?
可以用 -x的選項查找IP地址的主機名。
C:\Windows\system32>dig -x 202.106.0.20
; <<>> DiG 9.3.2 <<>> -x 202.106.0.20
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1911
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;20.0.106.202.in-addr.arpa. IN PTR
;; ANSWER SECTION:
20.0.106.202.in-addr.arpa. 75966 IN PTR gjjline.bta.net.cn.
;; Query time: 2546 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Jul 24 13:46:31 2013
;; MSG SIZE rcvd: 75
C:\Windows\system32>dig -x 202.106.0.20 +short
gjjline.bta.net.cn.
在這個循環(huán)中,腳本很靈活地在給出的子網(wǎng)中映射出名字。 ??
#!/bin/bash ? ?
NET=18.7.22 ? ?
for n in $(seq 1 254); do ? ?
?ADDR=${NET}.${n} ? ?
?echo -e "${ADDR}\t$(dig -x ${ADDR} +short)" ? ?
done ? ?
查詢一個不同的命名服務(wù)器? ? ?
查詢命令如下: ? ?
dig @ns1.google.com?www.google.com
使用/etc/resolv.conf里面的記錄查詢 ? ?
主機將從/etc/resolv.conf文件里面自動查詢DNS記錄 ? ?
$ host www ? ?
www.madboa.com?has address 65.102.49.170 ? ?
但是,默認情況下,dig會產(chǎn)生出一些意想不到的輸出。如果你想查詢本地主機名而不是全域名時候,使用 ? ?
+search 選項 ? ?
dig www +search ? ?
處理大部分的查詢? ? ?
如果你想查詢大量的主機名,你可以把它們存放在一個文本文件中(一條記錄一行),使用帶-f參數(shù)的dig來依 ? ?
次查詢。 ? ?
# 查詢大量的主機名 ? ?
dig -f /path/to/host-list.txt ? ?
# 相同的,更明確的輸出 ? ?
dig -f /path/to/host-list.txt +noall +answer ? ?
但是我要告訴你的是,dig 9.2.3以及以后的版本都不支持使用-f的選項反向查詢了。 ? ?
驗證DNS映射 ? ?
不正確的DNS配置會給你帶來很多苦惱,你可以通過如下兩種方式驗證你的DNS配置: ? ?
1.每個主機名應(yīng)該被解析到一個IP地址,而且那個IP地址也應(yīng)該反指向那個主機名。 ? ?
2.如果你子網(wǎng)上一個地址被反指向一個主機名,那么那個主機名也必須指向這個IP。 ? ?
對于這兩條規(guī)則來說,還有一些例外情況,比如CNAME應(yīng)該首先解析到另外一個主機名,而且只能指向一個IP ? ?
,有時多個主機名指向了相同的IP地址,但是那個IP只能有一個PTR記錄。 ? ?
綜上,這些有助于你檢查你的DNS映射是否像你想象的那樣工作。 ? ?
你也可以編寫一個測試腳本寫入你已知的主機名,如下所示,內(nèi)容很簡單;它執(zhí)行時當捕捉到一個CNAME時它 ? ?
就會中斷,如果多個主機名指向同一個IP地址它會報錯。我們假設(shè)這個文件包含你的主機名叫做named-hosts ? ?
。 ? ?
#!/bin/bash ? ?
# ? ?
# test DNS forward- and reverse-mapping ? ?
# ? ?
# edit this variable to reflect local class C subnet(s) ? ?
NETS="192.168.1 192.168.2" ? ?
# Test name to address to name validity ? ?
echo ? ?
echo -e "\tname -> address -> name" ? ?
echo '----------------------------------' ? ?
while read H; do ? ?
?ADDR=$(dig $H +short) ? ?
?if test -n "$ADDR"; then ? ?
? ?HOST=$(dig -x $ADDR +short) ? ?
? ?if test "$H" = "$HOST"; then ? ?
? ? ?echo -e "ok\t$H -> $ADDR -> $HOST" ? ?
? ?elif test -n "$HOST"; then ? ?
? ? ?echo -e "fail\t$H -> $ADDR -> $HOST" ? ?
? ?else ? ?
? ? ?echo -e "fail\t$H -> $ADDR -> [unassigned]" ? ?
? ?fi ? ?
?else ? ?
? ?echo -e "fail\t$H -> [unassigned]" ? ?
?fi ? ?
done < named-hosts ? ?
# Test address to name to address validity ? ?
echo ? ?
echo -e "\taddress -> name -> address" ? ?
echo '-------------------------------------' ? ?
for NET in $NETS; do ? ?
?for n in $(seq 1 254); do ? ?
? ?A=${NET}.${n} ? ?
? ?HOST=$(dig -x $A +short) ? ?
? ?if test -n "$HOST"; then ? ?
? ? ?ADDR=$(dig $HOST +short) ? ?
? ? ?if test "$A" = "$ADDR"; then ? ?
? ? ? ?echo -e "ok\t$A -> $HOST -> $ADDR" ? ?
? ? ?elif test -n "$ADDR"; then ? ?
? ? ? ?echo -e "fail\t$A -> $HOST -> $ADDR" ? ?
? ? ?else ? ?
? ? ? ?echo -e "fail\t$A -> $HOST -> [unassigned]" ? ?
? ? ?fi ? ?
? ?fi ? ?
?done ? ?
done ? ?
有趣的dig ? ?
創(chuàng)建屬于你自己的named.root文件 ? ?
任何連接到internet 的DNS服務(wù)器肯定會有InterNIC的named.root文件的拷貝,文件列出所有internet的根 ? ?
DNS,如果你不怕麻煩的話,你可以經(jīng)常從InterNIC的ftp服務(wù)器上把它下載下來,或者,你可以使用dig命令 ? ?
創(chuàng)建屬于你自己的時髦的named.root ? ?
# compare with?ftp://ftp.internic.net/domain/named.root
dig +nocmd . NS +noall +answer +additional ? ?
你的TTL值在這邊可能會很小,但是它是你找到最新的named.root文件! ? ?
跟蹤dig的查詢路徑 ? ?
你可能是個traceroute的狂熱愛好者,經(jīng)常喜歡查看如何從點A連接點B。那你可以使用dig +trace選項做類似 ? ?
的事。 ? ?
dig gentoo.de +trace ? ?
你可以在dig輸出的頭部分看到根DNS,然后找到負責解析所有*.de的DNS,最后找到gentoo.de的域名IP。 ? ?
獲取SOA記錄 ? ?
作為一個DNS管理員,我有時會(對DNS配置)做一些改變,并且想知道我的DNS解析是否推送的還是舊數(shù)據(jù), ? ?
這個+nssearch選項可以給你的公眾服務(wù)器提供清楚的統(tǒng)計信息。 ? ?
# the unvarnished truth ? ?
dig cse.ogi.edu +nssearch ? ?
# the same, displaying only serial number and hostname ? ?
dig cse.ogi.edu +nssearch | cut -d' ' -f4,11 ? ?
解釋TTL數(shù)值 ? ?
我喜愛google有很多原因,其中一個原因就是它在我的WEB日志中提供了精確的鏈接,它會使我很容易地指出 ? ?
哪種類型的查詢引導(dǎo)人們來訪問這個站點的頁面。 ? ?
出乎意料的是,我已經(jīng)看到很多請求要求查詢TTL數(shù)值,我從來沒想到TTL會成為最受歡迎的東東,但是你每天 ? ?
都在學(xué)習(xí)新東西,所以,應(yīng)大家的要求,這里稍微介紹一下TTL。 ? ?
如果你從本地DNS查詢互聯(lián)網(wǎng)地址,服務(wù)器指出從哪里獲得權(quán)威的答案并獲得地址,一旦服務(wù)器獲知答案,它 ? ?
將這個答案保存在本地緩存中以免你在稍后的時間內(nèi)再次查詢同樣的地址,這樣它就會很快地從緩存中獲取你 ? ?
要的答案,比你再次從internet查詢要快很多。 ? ?
當域管理員配置DNS記錄時,他們可以決定這個記錄可以在緩存中保存多長時間,這就是TTL數(shù)值(通常用多少 ? ?
秒來表示)。 ? ?
通常地,遠端服務(wù)器一般對記錄的緩存只保存TTL數(shù)值長的時間。時間過期后,服務(wù)器會刷新它的本地緩存并 ? ?
重新查詢一個權(quán)威答案。 ? ?
當你用dig來查詢DNS服務(wù)器某條記錄時,服務(wù)器會告訴dig這條記錄可以在緩存中保持的時間長短。 ? ?
舉個例子,像上面寫的那樣,gmail.com域的MX記錄的TTL值是219s,gmail.com域的管理員要求遠端服務(wù)器緩 ? ?
存它的MX記錄不能高于5分鐘,所以當你第一次查詢那個記錄(gmail.com的MX記錄)時,dig會告訴你一個219 ? ?
的TTL。
C:\Windows\system32>dig +nocmd gmail.com ms +noall +answer
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 172
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;gmail.com. IN A
;; ANSWER SECTION:
gmail.com. 219 IN A 173.194.72.18
gmail.com. 219 IN A 173.194.72.17
gmail.com. 219 IN A 173.194.72.19
gmail.com. 219 IN A 173.194.72.83
;; Query time: 15 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Jul 24 13:51:18 2013
;; MSG SIZE rcvd: 91 ??
如果你一段時間后再去查,你會發(fā)現(xiàn)TTL值減少為210(中間隔了9s)。 ? ?
C:\Windows\system32>dig +nocmd gmail.com ms +noall +answer
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1393
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;gmail.com. IN A
;; ANSWER SECTION:
gmail.com. 210 IN A 173.194.72.17
gmail.com. 210 IN A 173.194.72.19
gmail.com. 210 IN A 173.194.72.83
gmail.com. 210 IN A 173.194.72.18
;; Query time: 0 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Jul 24 13:51:27 2013
;; MSG SIZE rcvd: 91 ??
如果你的時間計算得足夠好,你會獲取這條記錄的最后生存時間。 ? ?
C:\Windows\system32>dig +nocmd gmail.com mx +noall +answer
gmail.com. 2532 IN MX 10 alt1.gmail-smtp-in.l.google.c
om.
gmail.com. 2532 IN MX 20 alt2.gmail-smtp-in.l.google.c
om.
gmail.com. 2532 IN MX 40 alt4.gmail-smtp-in.l.google.c
om.
gmail.com. 2532 IN MX 30 alt3.gmail-smtp-in.l.google.c
om.
gmail.com. 2532 IN MX 5 gmail-smtp-in.l.google.com. ??
在那之后,你查詢的DNS服務(wù)器會“忘記”這個問題的答案,在你下次查詢這條記錄時,整個循環(huán)又將開始( ? ?
本例子中是300s)。
在 unix 和 linux 下,建議大家使用 dig 命令來代替 nslookup。 dig 命令的功能比 nslookup 強大很多,不像 nslookkup 還得 set 來 set 去的,怪麻煩的。下面是 dig 的一些比較常用的命令: ??
# dig 最基本的用法 ? ?
dig @server qianlong.com ? ?
# 用 dig 查看 zone 數(shù)據(jù)傳輸 ? ?
dig @server qianlong.com AXFR ? ?
# 用 dig 查看 zone 數(shù)據(jù)的增量傳輸 ? ?
dig @server qianlong.com IXFR=N ? ?
# 用 dig 查看反向解析 ? ?
dig -x 124.42.102.203 @server ? ?
# 查找一個域的授權(quán) dns 服務(wù)器 ? ?
dig ?qianlong.com +nssearch ? ?
# 從根服務(wù)器開始追蹤一個域名的解析過程 ? ?
dig ?qianlong.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
******************************** ??
你可以到?www.isc.org?去下載一個 bind for windows 的版本安裝,安裝后就可以在 windows 上使用 dig 命令了。^O^ ? ?
ftp://ftp.isc.org/isc/bind/contrib/ntbind-9.3.0/BIND9.3.0.zip
********************************* ? ?
用途 ? ?
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 域名服務(wù)器的靈活的工具。它執(zhí)行 DNS 搜索,顯示從受請求的域名服務(wù)器返回的答復(fù)。多數(shù) DNS 管理員利用 dig 作為 DNS 問題的故障診斷,因為它靈活性好、易用、輸出清晰。雖然通常情況下 dig 使用命令行參數(shù),但它也可以按批處理模式從文件讀取搜索請求。不同于早期版本,dig 的 BIND9 實現(xiàn)允許從命令行發(fā)出多個查詢。除非被告知請求特定域名服務(wù)器,dig 將嘗試 /etc/resolv.conf 中列舉的所有服務(wù)器。當未指定任何命令行參數(shù)或選項時,dig 將對“.”(根)執(zhí)行 NS 查詢。 ? ?
標志 ? ?
-b address 設(shè)置所要詢問地址的源 IP 地址。這必須是主機網(wǎng)絡(luò)接口上的某一合法的地址。 ? ?
-c class 缺省查詢類(IN for internet)由選項 -c 重設(shè)。class 可以是任何合法類,比如查詢 Hesiod 記錄的 HS 類或查詢 CHAOSNET 記錄的 CH 類。 ? ?
-f filename 使 dig 在批處理模式下運行,通過從文件 filename 讀取一系列搜索請求加以處理。文件包含許多查詢;每行一個。文件中的每一項都應(yīng)該以和使用命令行接口對 dig 的查詢相同的方法來組織。 ? ?
-h 當使用選項 -h 時,顯示一個簡短的命令行參數(shù)和選項摘要。 ? ?
-k filename 要簽署由 dig 發(fā)送的 DNS 查詢以及對它們使用事務(wù)簽名(TSIG)的響應(yīng),用選項 -k 指定 TSIG 密鑰文件。 ? ?
-n 缺省情況下,使用 IP6.ARPA 域和 RFC2874 定義的二進制標號搜索 IPv6 地址。為了使用更早的、使用 IP6.INT 域和 nibble 標簽的 RFC1886 方法,指定選項 -n(nibble)。 ? ?
-p port# 如果需要查詢一個非標準的端口號,則使用選項 -p。port# 是 dig 將發(fā)送其查詢的端口號,而不是標準的 DNS 端口號 53。該選項可用于測試已在非標準端口號上配置成偵聽查詢的域名服務(wù)器。 ? ?
-t type 設(shè)置查詢類型為 type。可以是 BIND9 支持的任意有效查詢類型。缺省查詢類型是 A,除非提供 -x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區(qū)域傳輸。當需要增量區(qū)域傳輸(IXFR)時,type 設(shè)置為 ixfr=N。增量區(qū)域傳輸將包含自從區(qū)域的 SOA 記錄中的序列號改為 N 之后對區(qū)域所做的更改。 ? ?
-x addr 逆向查詢(將地址映射到名稱)可以通過 -x 選項加以簡化。addr 是一個以小數(shù)點為界的 IPv4 地址或冒號為界的 IPv6 地址。當使用這個選項時,無需提供 name、class 和 type 參數(shù)。dig 自動運行類似 11.12.13.10.in-addr.arpa 的域名查詢,并分別設(shè)置查詢類型和類為 PTR 和 IN。 ? ?
-y name:key 您可以通過命令行上的 -y 選項指定 TSIG 密鑰;name 是 TSIG 密碼的名稱,key 是實際的密碼。密碼是 64 位加密字符串,通常由 dnssec-keygen(8)生成。當在多用戶系統(tǒng)上使用選項 -y 時應(yīng)該謹慎,因為密碼在 ps(1)的輸出或 shell 的歷史文件中可能是可見的。當同時使用 dig 和 TSCG 認證時,被查詢的名稱服務(wù)器需要知道密碼和解碼規(guī)則。在 BIND 中,通過提供正確的密碼和 named.conf 中的服務(wù)器聲明實現(xiàn)。 ? ?
參數(shù) ? ?
global-queryopt... 全局查詢選項(請參閱多個查詢)。 ? ?
查詢 查詢選項(請參閱查詢選項)。 ? ?
查詢選項 ? ?
dig 提供查詢選項號,它影響搜索方式和結(jié)果顯示。一些在查詢請求報頭設(shè)置或復(fù)位標志位,一部分決定顯示哪些回復(fù)信息,其它的確定超時和重試戰(zhàn)略。每個查詢選項被帶前綴(+)的關(guān)鍵字標識。一些關(guān)鍵字設(shè)置或復(fù)位一個選項。通常前綴是求反關(guān)鍵字含義的字符串 no。其他關(guān)鍵字分配各選項的值,比如超時時間間隔。它們的格式形如 +keyword=value。查詢選項是: ? ?
+[no]tcp ? ?
查詢域名服務(wù)器時使用 [不使用] TCP。缺省行為是使用 UDP,除非是 AXFR 或 IXFR 請求,才使用 TCP 連接。 ? ?
+[no]vc ? ?
查詢名稱服務(wù)器時使用 [不使用] TCP。+[no]tcp 的備用語法提供了向下兼容。 vc 代表虛電路。 ? ?
+[no]ignore ? ?
忽略 UDP 響應(yīng)的中斷,而不是用 TCP 重試。缺省情況運行 TCP 重試。 ? ?
+domain=somename ? ?
設(shè)定包含單個域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域偽指令指定,并且啟用搜索列表處理,好像給定了 +search 選項。 ? ?
+[no]search ? ?
使用 [不使用] 搜索列表或 resolv.conf 中的域偽指令(如果有的話)定義的搜索列表。缺省情況不使用搜索列表。 ? ?
+[no]defname ? ?
不建議看作 +[no]search 的同義詞。 ? ?
+[no]aaonly ? ?
該選項不做任何事。它用來提供對設(shè)置成未實現(xiàn)解析器標志的 dig 的舊版本的兼容性。 ? ?
+[no]adflag ? ?
在查詢中設(shè)置 [不設(shè)置] AD(真實數(shù)據(jù))位。目前 AD 位只在響應(yīng)中有標準含義,而查詢中沒有,但是出于完整性考慮在查詢中這種性能可以設(shè)置。 ? ?
+[no]cdflag ? ?
在查詢中設(shè)置 [不設(shè)置] CD(檢查禁用)位。它請求服務(wù)器不運行響應(yīng)信息的 DNSSEC 合法性。 ? ?
+[no]recursive ? ?
切換查詢中的 RD(要求遞歸)位設(shè)置。在缺省情況下設(shè)置該位,也就是說 dig 正常情形下發(fā)送遞歸查詢。當使用查詢選項 +nssearch 或 +trace 時,遞歸自動禁用。 ? ?
+[no]nssearch ? ?
這個選項被設(shè)置時,dig 試圖尋找包含待搜名稱的網(wǎng)段的權(quán)威域名服務(wù)器,并顯示網(wǎng)段中每臺域名服務(wù)器的 SOA 記錄。 ? ?
+[no]trace ? ?
切換為待查詢名稱從根名稱服務(wù)器開始的代理路徑跟蹤。缺省情況不使用跟蹤。一旦啟用跟蹤,dig 使用迭代查詢解析待查詢名稱。它將按照從根服務(wù)器的參照,顯示來自每臺使用解析查詢的服務(wù)器的應(yīng)答。 ? ?
+[no]cmd ? ?
設(shè)定在輸出中顯示指出 dig 版本及其所用的查詢選項的初始注釋。缺省情況下顯示注釋。 ? ?
+[no]short ? ?
提供簡要答復(fù)。缺省值是以冗長格式顯示答復(fù)信息。 ? ?
+[no]identify ? ?
當啟用 +short 選項時,顯示 [或不顯示] 提供應(yīng)答的 IP 地址和端口號。如果請求簡短格式應(yīng)答,缺省情況不顯示提供應(yīng)答的服務(wù)器的源地址和端口號。 ? ?
+[no]comments ? ?
切換輸出中的注釋行顯示。缺省值是顯示注釋。 ? ?
+[no]stats ? ?
該查詢選項設(shè)定顯示統(tǒng)計信息:查詢進行時,應(yīng)答的大小等等。缺省顯示查詢統(tǒng)計信息。 ? ?
+[no]qr ? ?
顯示 [不顯示] 發(fā)送的查詢請求。缺省不顯示。 ? ?
+[no]question ? ?
當返回應(yīng)答時,顯示 [不顯示] 查詢請求的問題部分。缺省作為注釋顯示問題部分。 ? ?
+[no]answer ? ?
顯示 [不顯示] 應(yīng)答的回答部分。缺省顯示。 ? ?
+[no]authority ? ?
顯示 [不顯示] 應(yīng)答的權(quán)限部分。缺省顯示。 ? ?
+[no]additional ? ?
顯示 [不顯示] 應(yīng)答的附加部分。缺省顯示。 ? ?
+[no]all ? ?
設(shè)置或清除所有顯示標志。 ? ?
+time=T ? ?
為查詢設(shè)置超時時間為 T 秒。缺省是5秒。如果將 T 設(shè)置為小于1的數(shù),則以1秒作為查詢超時時間。 ? ?
+tries=A ? ?
設(shè)置向服務(wù)器發(fā)送 UDP 查詢請求的重試次數(shù)為 A,代替缺省的 3 次。如果把 A 小于或等于 0,則采用 1 為重試次數(shù)。 ? ?
+ndots=D ? ?
出于完全考慮,設(shè)置必須出現(xiàn)在名稱 D 的點數(shù)。缺省值是使用在 /etc/resolv.conf 中的 ndots 語句定義的,或者是 1,如果沒有 ndots 語句的話。帶更少點數(shù)的名稱被解釋為相對名稱,并通過搜索列表中的域或文件 /etc/resolv.conf 中的域偽指令進行搜索。 ? ?
+bufsize=B ? ?
設(shè)置使用 EDNS0 的 UDP 消息緩沖區(qū)大小為 B 字節(jié)。緩沖區(qū)的最大值和最小值分別為 65535 和 0。超出這個范圍的值自動舍入到最近的有效值。 ? ?
+[no]multiline ? ?
以詳細的多行格式顯示類似 SOA 的記錄,并附帶可讀注釋。缺省值是每單個行上顯示一條記錄,以便于計算機解析 dig 的輸出。 ? ?
多條查詢 ? ?
dig 的 BIND9 支持在命令行上指定多個查詢(支持 -f 批處理文件選項的附加功能)。每條查詢可以使用自己的標志位、選項和查詢選項。 ? ?
在這種情況下,在上面描述的命令行語法中,每條查詢自變量代表一個個別查詢。每一條由任意標準選項和標志、待查詢名稱、可選查詢類型和類以及任何適用于該查詢的查詢選項。 ? ?
也可以使用對所有查詢均有效的查詢選項全局集合。全局查詢選項必須位于命令行上第一個名稱、類、類型、選項、標志和查詢選項的元組之前。任何全局查詢選項(除了 +[no]cmd 選項)可以被下面的查詢特別選項重設(shè)。例如: ? ?
dig +qr?www.isc.org?any -x 127.0.0.1 isc.org ns +noqr顯示 dig 如何從命令行出發(fā)進行三個查詢:一個針對?www.isc.org的任意查詢、一個 127.0.0.1 的逆向查詢,以及一個 isc.org 的 NS 記錄查詢。應(yīng)用了 +qr 的全局查詢選項,以便 dig 顯示進行每條查詢的初始查詢。最后那個查詢有一個本地查詢選項 +noqr,表示 dig 在搜索 isc.org 的 NS 記錄時不顯示初始查詢。 ? ?
示例 ? ?
一個典型的 dig 調(diào)用類似: ? ?
dig @server name type其中: ? ?
server ? ?
待查詢名稱服務(wù)器的名稱或 IP 地址??梢允怯命c分隔的 IPv4 地址或用冒號分隔的 IPv6 地址。當由主機提供服務(wù)器參數(shù)時,dig 在查詢域名服務(wù)器前先解析那個名稱。如果沒有服務(wù)器參數(shù)可以提供,dig 參考 /etc/resolv.conf,然后查詢列舉在那里的域名服務(wù)器。顯示來自域名服務(wù)器的應(yīng)答。 ? ?
name ? ?
將要查詢的資源記錄的名稱。 ? ?
type ? ?
顯示所需的查詢類型 - ANY、A、MX、SIG,以及任何有效查詢類型等。如果不提供任何類型參數(shù),dig 將對紀錄 A 執(zhí)行查詢。? ??
本文轉(zhuǎn)自 高文龍 51CTO博客,原文鏈接:http://blog.51cto.com/gaowenlong/1256157,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Windows 下的Dig的安装及应用集合(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hills And Valleys Co
- 下一篇: Three Bags CodeForce