DIG(1) | General Commands Manual | DIG(1) |
dig
—
傳送域名查詢資訊包到域名伺服器
dig
[@
server]
domain
[⟨query-type⟩]
[⟨query-class⟩]
[+
⟨query-option⟩]
[-
⟨dig-option⟩]
[%comment]
Dig
(domain information groper
域名資訊搜尋)是一個靈活的
命令列工具,
它可以用來從域名系統伺服器中收集資訊.
Dig
有兩種模式:簡單互動模式
用於簡單的查詢,而批處理模式則可以對
包含多個查詢條目的列表執行查詢.
所有查詢選項都可以從命令列輸入.
通常簡單的
dig
用法為下列格式:
dig @
server
domain query-type query-class這裡:
dig
會嘗試使用你機器的預設域名伺服器.
注意:
如果指定了一個域名,那麼將使用域名系統解析程式
(即BIND)來進行解析.
如果你的系統不支援DNS,那麼可能
必須
指定一個以點分隔的地址.另外一種選擇是,
如果在你配置的某個地方有一臺這樣的伺服器,
那麼你所要做的就是建立
/etc/resolv.conf
並在其中指明預設域名伺服器的位置,這樣
server
自身就可以解析了.參看
resolver(5) 以獲得
/etc/resolv.conf
相關的資訊.
警告: 修改
/etc/resolv.conf
同樣會對標準的解析程式庫產生影響,而
(潛在地)
某些程式會要用到它.
作為一種選擇,使用者可設定環境變數
LOCALRES
為指定的檔案,這將用來取代
/etc/resolv.conf
(LOCALRES
是特定針對 dig
解析程式的,並不會牽涉到標準解析程式).
如果 LOCALRES
變數未設定或者指定的檔案不能讀,那麼就使用
/etc/resolf.conf.
-x
選項(在該部分的
OTHER OPTIONS
節中有介紹)以獲知指定反向地址查詢的便捷方法.T_A =
address).
以下型別是可識別的:
T_A
T_ANY
T_MX
T_NS
T_SOA
T_HINFO
T_AXFR
T_TXT
(參看RFC 1035以獲得完整的列表.)
C_IN =
Internet).
以下的等級是可識別的:
C_IN
C_ANY
(參看RFC 1035以獲得完整的列表.)
注意:
“Any”
可以用來指定一個
等級
和/或查詢的一種
型別. Dig
會將第一次出現的
“any” 解釋為
query-type = T_ANY
.
為了指明 query-class =
C_ANY
,
你必須或者指定
“any” 兩次,或者使用
-c
選項(見下面)設定
query-class.
dig
這可能很有用.
因為不用對一組查詢中的每個
@server-domain-name
進行解析,你就可以避免這樣做的額外開銷,
並且仍然能夠在命令列上以域名作為引數.
例如:
dig @128.9.0.32
%venera.isi.edu mx isi.edu
-
⟨dig
option⟩-
”
用來指定一個影響
dig
操作的選項.
當前可用的選項有(儘管不能保證都有用):
-x
dot-notation-addressdig
32.0.9.128.in-addr.arpa
”,
你可以簡單地寫成
“dig -x 128.9.0.32
”.-f
filedig
批處理模式的檔案.該檔案包含了一組查詢清單
( dig
命令列),它們將一個接一個地執行.以
‘; ,’ ‘#’ 或
‘\n’
開頭的行將忽略.其它選項
仍然可以在命令列上出現,而且對
每個批處理查詢都有效.-T
timedig
命令大致同步執行.預設為零.-p
port-P
[ping-string]ping
-s
-server_name
-56
-3
如果可選的
“ping_string”
存在,那麼
會覆蓋shell命令中的
“ping
-s
”.
-t
query-typeT_MX
).-c
query-class-k
keydir:keyname-envsav
dig
的環境變數
(預設的,顯示選項,等等.),在所有引數都解釋了之後,
應儲存它們到
一個檔案中以使之成為預設的環境變數.
如果你不喜歡預設的標準設定而又不想在每次使用
dig
時帶大量的選項,那麼這很有用.
環境變數包括解析程式狀態變數標識,超時和重試次數
以及詳細控制
dig
輸出的標識(見下面).
如果shell環境變數
LOCALDEF
設定為一個檔案的名字,那麼此即為預設的
dig
環境變數所儲存的地方.如果沒有,那麼會在當前
工作目錄下建立
“DiG.env”.
注意:
LOCALDEF
是特定針對 dig
解析程式,
而它不會影響標準解析程式庫的操作.
每當 dig
執行時,它會查詢
“./DiG.env”
或者在shell環境變數
LOCALDEF
中指定的檔案.
如果這樣的檔案存在而且可讀,那麼在解釋
任何引數之前, 先從
該檔案中
恢復環境變數.
-envset
dig
的批處理檔案一行上指定了
“-envset
”
時,在引數之後的
dig
環境變數會被解釋為批處理檔案執行期間
預設的環境變數,
或者 直到指定了
“-envset
”
的下一行為止.-
[no
] cm stickdig
環境變數(透過
“-envset
”
開關變數初始化讀入或設定)會在
dig
批處理檔案每次查詢(行)之前重建.
預設的
“-nostick
” 表示
dig
環境變數不是固定的,因而在
dig
批處理檔案中單行上指定的選項將對剩餘的行
繼續產生作用(也即,它們不會恢復成
“sticky(固定的)”
預設值).+
⟨query-option⟩dig
輸出細節的選項.這些選項中的許多與
nslookup(8)
所承認的引數相同.
如果一個選項需帶引數,那麼格式如下:
+
keyword [=value]絕大多數關鍵字可簡寫. “+” 選項的解釋是非常直白的 — 值與它的關鍵字之間 千萬不能用空格分隔. 當前可用的關鍵字有:
Keyword Abbrev. Meaning [default]
(關鍵字) (縮寫) (含義) [預設值]
no
]
debug
(deb
)deb
]no
]
d2
nod2
]no
]
recurse
(rec
)rec
]retry=
#
(ret
)time=
#
(ti
)no
] ko
noko
]no
] vc
novc
]no
]
defname
(def
)def
]no
]
search
(sea
)sea
]domain=
NAME
(do
)no
]
ignore
(i
)noi
]no
]
primary
(pr
)nopr
]no
]
aaonly
(aa
)noaa
]no
] cmd
cmd
]no
]
stats
(st
)st
]no
]
Header
(H
)H
]no
]
header
(he
)he
]no
]
ttlid
(tt
)tt
]no
] cl
nocl
]no
] qr
noqr
]no
]
reply
(rep
)rep
]no
]
ques
(qu
)qu
]no
]
answer
(an
)an
]no
]
author
(au
)au
]no
]
addit
(ad
)ad
]pfdef
pfmin
pfset=
#pfand=
#pfor=
#當傳送資料報查詢時,
retry
和 time
選項會影響解析程式庫的重傳策略.其演算法如下:
for i = 0 to retry - 1 for j = 1 to num_servers send_query wait((time * (2**i)) / num_servers) end end
(注意: dig
通常取
“num_servers
”
的值為1 . )
Dig
以前要求BIND的 resolver(3)
庫的版本作一些細微的修改.
從BIND
4.9起,BIND的解析程式已經修補好
並可以正常地與
dig
一起工作.
實質上, dig
在解釋引數和設定適合的引數時是
直來直去的
(雖然並不巧妙)
Dig
會用到
resolver(3) 的例程
res_init
(),
res_mkquery
(),
res_send
()
以及訪問 _res
結構.
另見上面對
-envsav
, -envset
, 和
-
[no
]
stick
選項的說明.
RFC 1035.
Steve Hotz hotz@isi.edu
Dig
使用了源自 nslookup(8)
的函式, 其作者為Andrew
Cherenson.
Dig
是蠕變特色("creeping
featurism")的一個 典型例項 --
這是因在其開發
過程中就考慮到了一些潛在應用而導致的結果.
它可能會從這種嚴格的限定中受益.同樣,
他們設立的顯示位以及條目的間隔尺寸
很明顯地也是一種十分特別的創意.
當問題出在解析程式身上時,
Dig
不會總是能夠正常地退出(在適合的狀況下)
(注意:
絕大多數一般的exit情況是能夠處理的).
當運行於批處理模式下時尤其惱火.
如果不能正常退出(又無法俘獲)的話,
那麼整個批處理將終止;如果俘獲了這樣的事件,
dig
就只是繼續下一個查詢罷了.
riser <boomer@ccidnet.com>
2001/7/19
http://cmpp.linuxforum.net
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
1990年8月30日 | BSD 4 |