| DIG(1) | General Commands Manual | DIG(1) |
NAME(名稱)
dig — 傳送域名查詢資訊包到域名伺服器
SYNOPSIS(總覽)
dig [@server] domain [⟨query-type⟩] [⟨query-class⟩] [+⟨query-option⟩] [-⟨dig-option⟩] [%comment]
DESCRIPTION(描述)
Dig (domain information groper 域名資訊搜尋)是一個靈活的 命令列工具, 它可以用來從域名系統伺服器中收集資訊. Dig 有兩種模式:簡單互動模式 用於簡單的查詢,而批處理模式則可以對 包含多個查詢條目的列表執行查詢. 所有查詢選項都可以從命令列輸入.
通常簡單的 dig 用法為下列格式:
dig @server domain query-type query-class這裡:
- server
- 可為域名或者以點分隔的Internet地址. 如果省略該可選欄位,
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. - domain
- 是指一個你請求資訊的域名. 參看
-x選項(在該部分的 OTHER OPTIONS 節中有介紹)以獲知指定反向地址查詢的便捷方法. - query-type
- 是指你所請求的資訊型別(DNS查詢型別). 如果省略,預設為 “a” (
T_A =address). 以下型別是可識別的:- a
T_A - 網路地址
- any
T_ANY - 所有/任何與指定域相關的資訊
- mx
T_MX - 該域的郵件閘道器
- ns
T_NS - 域名伺服器
- soa
T_SOA - 區域的授權記錄
- hinfo
T_HINFO - 主機資訊
- axfr
T_AXFR - 區域傳輸記錄(必須是詢問一臺授權的伺服器)
- txt
T_TXT - 任意的字串資訊
(參看RFC 1035以獲得完整的列表.)
- a
- query-class
- 是指在查詢中請求的網路等級.如果省略,預設為 “in” (
C_IN =Internet). 以下的等級是可識別的:- in
C_IN - Internet等級的域
- any
C_ANY - 所有/任何等級的資訊
(參看RFC 1035以獲得完整的列表.)
注意: “Any” 可以用來指定一個 等級 和/或查詢的一種 型別.
Dig會將第一次出現的 “any” 解釋為 query-type =T_ANY. 為了指明 query-class =C_ANY, 你必須或者指定 “any” 兩次,或者使用-c選項(見下面)設定 query-class. - in
OTHER OPTIONS(其它選項)
- %ignored-comment
- “%” 用來引用一個不用作解釋的引數. 如果正以批處理的模式執行
dig這可能很有用. 因為不用對一組查詢中的每個 @server-domain-name 進行解析,你就可以避免這樣做的額外開銷, 並且仍然能夠在命令列上以域名作為引數. 例如:dig @128.9.0.32 %venera.isi.edu mx isi.edu -⟨dig option⟩- “
-” 用來指定一個影響dig操作的選項. 當前可用的選項有(儘管不能保證都有用):-xdot-notation-address- 這是指定反向地址對映的便捷的方法. 不用寫 “
dig 32.0.9.128.in-addr.arpa”, 你可以簡單地寫成 “dig -x 128.9.0.32”. -ffiledig批處理模式的檔案.該檔案包含了一組查詢清單 (dig命令列),它們將一個接一個地執行.以 ‘; ,’ ‘#’ 或 ‘\n’ 開頭的行將忽略.其它選項 仍然可以在命令列上出現,而且對 每個批處理查詢都有效.-Ttime- 當運行於批處理模式下時,兩次接著的查詢之間的 時間間隔,以秒計. 可以用來保持兩個或多個批處理
dig命令大致同步執行.預設為零. -pport- 埠號.透過監聽非標準埠號來查詢 域名伺服器.預設為53.
-P[ping-string]- 在查詢返回之後,執行一次 ping(8) 命令以獲得響應時間的對照關係.這在呼叫shell上 顯得不那麼自然. 該命令顯示的最後三行統計資訊為:
ping-s-server_name-56-3如果可選的 “ping_string” 存在,那麼 會覆蓋shell命令中的 “
ping-s”. -tquery-type- 指定查詢型別.可以指定為一個將包含在型別欄位 中的整數值,也可以使用 上面討論的縮寫助記符(即 mx =
T_MX). -cquery-class- 指定查詢等級.可以指定為一個將包含在等級欄位 中的整數值,也可以使用 上面討論的縮寫助記符(即in = C_IN).
-kkeydir:keyname- 用TSIG金鑰指定的的金鑰名來簽署這次查詢, 該金鑰名在目錄keydir下.
-envsav- 該標識指定
dig的環境變數 (預設的,顯示選項,等等.),在所有引數都解釋了之後, 應儲存它們到 一個檔案中以使之成為預設的環境變數. 如果你不喜歡預設的標準設定而又不想在每次使用dig時帶大量的選項,那麼這很有用. 環境變數包括解析程式狀態變數標識,超時和重試次數 以及詳細控制dig輸出的標識(見下面). 如果shell環境變數LOCALDEF設定為一個檔案的名字,那麼此即為預設的dig環境變數所儲存的地方.如果沒有,那麼會在當前 工作目錄下建立 “DiG.env”.注意:
LOCALDEF是特定針對dig解析程式, 而它不會影響標準解析程式庫的操作.每當
dig執行時,它會查詢 “./DiG.env” 或者在shell環境變數LOCALDEF中指定的檔案. 如果這樣的檔案存在而且可讀,那麼在解釋 任何引數之前, 先從 該檔案中 恢復環境變數. -envset- 該標識隻影響批處理查詢的執行.當在
dig的批處理檔案一行上指定了 “-envset” 時,在引數之後的dig環境變數會被解釋為批處理檔案執行期間 預設的環境變數, 或者 直到指定了 “-envset” 的下一行為止. -[no] cm stick- 該標識隻影響批處理查詢的執行. 它指定
dig環境變數(透過 “-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)- 設定重試次數為# [4]
time=#(ti)- 設定超時長度為#秒 [4]
- [
no]ko - 保留公開的選項(keep open options)(隱含vc) [
noko] - [
no]vc - 使用/不使用虛擬電路 [
novc] - [
no]defname(def) - 使用/不使用預設的域名 [
def] - [
no]search(sea) - 使用/不使用域搜尋列表 [
sea] domain=NAME (do)- 設定預設的域名為 NAME
- [
no]ignore(i) - 忽略/不忽略截斷(trunc.)錯誤 [
noi] - [
no]primary(pr) - 使用/不使用主伺服器 [
nopr] - [
no]aaonly(aa) - 表示只包含授權查詢的標識 [
noaa] - [
no]cmd - 重複(echo)解釋的引數 [
cmd] - [
no]stats(st) - 顯示查詢統計資訊 [
st] - [
no]Header(H) - 顯示基本的包頭 [
H] - [
no]header(he) - 顯示包頭的標識 [
he] - [
no]ttlid(tt) - 顯示TTLs(Time to Live) [
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=#- 位和顯示位設為#(bitwise and print flags with #)
pfor=#- 位或顯示位設為#(bitwise or print flags with #)
當傳送資料報查詢時,
retry和time選項會影響解析程式庫的重傳策略.其演算法如下:for i = 0 to retry - 1 for j = 1 to num_servers send_query wait((time * (2**i)) / num_servers) endend
(注意:
dig通常取 “num_servers” 的值為1 . ) - [
DETAILS(細節)
Dig 以前要求BIND的 resolver(3) 庫的版本作一些細微的修改. 從BIND 4.9起,BIND的解析程式已經修補好 並可以正常地與 dig 一起工作. 實質上, dig 在解釋引數和設定適合的引數時是 直來直去的 (雖然並不巧妙) Dig 會用到 resolver(3) 的例程 res_init(), res_mkquery(), res_send() 以及訪問 _res 結構.
ENVIRONMENT(環境變數)
另見上面對 -envsav, -envset, 和 -[no] stick 選項的說明.
FILES(相關檔案)
- /etc/resolv.conf
- 初始化的域名和域名伺服器地址
- ./DiG.env
- 預設的儲存預設選項的檔案
SEE ALSO(另見)
STANDARDS(標準)
RFC 1035.
AUTHOR(作者)
Steve Hotz [email protected]
ACKNOWLEDGMENTS(致謝)
Dig 使用了源自 nslookup(8) 的函式, 其作者為Andrew Cherenson.
BUGS
Dig 是蠕變特色("creeping featurism")的一個 典型例項 - 這是因在其開發 過程中就考慮到了一些潛在應用而導致的結果. 它可能會從這種嚴格的限定中受益.同樣, 他們設立的顯示位以及條目的間隔尺寸 很明顯地也是一種十分特別的創意.
當問題出在解析程式身上時, Dig 不會總是能夠正常地退出(在適合的狀況下) (注意: 絕大多數一般的exit情況是能夠處理的). 當運行於批處理模式下時尤其惱火. 如果不能正常退出(又無法俘獲)的話, 那麼整個批處理將終止;如果俘獲了這樣的事件, dig 就只是繼續下一個查詢罷了.
[中文版維護人]
riser <[email protected]>
[中文版最新更新]
2001/7/19
《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net
跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
| 1990年8月30日 | BSD 4 |