1. 程式人生 > >Linux dig命令

Linux dig命令

//安裝命令
# yum -y install bind-utils
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以獲得完整的列表.)

     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.

   OTHER OPTIONS(其它選項)
     %ignored-comment
                 “%” 用來引用一個不用作解釋的引數.  如果正以批處理的模式執行 dig 這可能很有用.  因為不用對一
                 組查詢中的每個 @server-domain-name 進行解析,你就可以避免這樣做的額外開銷, 並且仍然能夠在命
                 令行上以域名作為引數.  例如:

                             dig @128.9.0.32 %venera.isi.edu mx isi.edu
     -〈dig option〉
                 “-” 用來指定一個影響 dig 操作的選項.  當前可用的選項有(儘管不能保證都有用):

                 -x dot-notation-address
                             這是指定反向地址對映的便捷的方法.  不用寫 “dig 32.0.9.128.in-addr.arpa”, 你可以
                             簡單地寫成 “dig -x 128.9.0.32”.

                 -f file     dig 批處理模式的檔案.該檔案包含了一組查詢清單 ( dig 命令列),它們將一個接一個地
                             執行.以 ‘; ,’ ‘#’ 或 ‘\n’ 開頭的行將忽略.其它選項仍然可以在命令列上出現,而且對
                             每個批處理查詢都有效.

                 -T time     當運行於批處理模式下時,兩次接著的查詢之間的時間間隔,以秒計.  可以用來保持兩個或
                             多個批處理 dig 命令大致同步執行.預設為零.

                 -p port     埠號.通過監聽非標準埠號來查詢域名伺服器.預設為53.

                 -P[ping-string]
                             在查詢返回之後,執行一次 ping(8) 命令以獲得響應時間的對照關係.這在呼叫shell上顯
                             得不那麼自然.  該命令顯示的最後三行統計資訊為:

                                         ping -s -server_name -56 -3

                             如果可選的 “ping_string” 存在,那麼會覆蓋shell命令中的 “ping -s”.

                 -t query-type
                             指定查詢型別.可以指定為一個將包含在型別欄位中的整數值,也可以使用上面討論的縮寫
                             助記符(即 mx = T_MX).

                 -c query-class
                             指定查詢等級.可以指定為一個將包含在等級欄位中的整數值,也可以使用上面討論的縮寫
                             助記符(即in = C_IN).

                 -k keydir:keyname
                             用TSIG金鑰指定的的金鑰名來簽署這次查詢, 該金鑰名在目錄keydir下.

                 -envsav     該標識指定 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]

                 (關鍵字)     (縮寫)   (含義) [預設值]

                 debug     (deb)’                        開啟/關閉除錯模式 [deb]
                 d2o]        ’                        開啟/關閉特殊的除錯模式 [nod2]
                 recurse   (rec)’                        使用/不使用遞迴查詢 [rec]
                 retry=(ret)’                        設定重試次數為# [4]
                 time=# (ti)’                        設定超時長度為#秒 [4]
                 ko’]                       保留公開的選項(keep open options)(隱含vc) [noko]
                 vc’]                       使用/不使用虛擬電路 [novc]
                 defname   (def)’                        使用/不使用預設的域名 [def]
                 search    (sea)’                        使用/不使用域搜尋列表 [sea]
                 (do)’n=NAME                  設定預設的域名為 NAME
                 ignore    (i)’                        忽略/不忽略截斷(trunc.)錯誤 [noi]
                 primary   (pr)’                        使用/不使用主伺服器 [nopr]
                 aaonly    (aa)’                        表示只包含授權查詢的標識 [noaa]
                 cmd’                        重複(echo)解釋的引數 [cmd]
                 stats     (st)’                        顯示查詢統計資訊 [st]
                 Header    (H)’                        顯示基本的包頭 [H]
                 header    (he)’                        顯示包頭的標識 [he]
                 ttlid     (tt)’                        顯示TTLs(Time to Live) [tt]
                 cl’]                       顯示等級資訊 [nocl]
                 qr’]                       顯示向外的查詢 [noqr]
                 reply     (rep)’                        顯示響應資訊 [rep]
                 ques      (qu)’                        顯示詢問部分 [qu]
                 answer    (an)’                        顯示應答部分 [an]
                 author    (au)’                        顯示授權的部分 [au]
                 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)
                           end
                            在每次使用 dig 時帶大量的選項,那麼這很有用.  環境變數包括解析程式狀態變數標識,

                 (注意: 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(環境變數)
     LOCALRES    用來替換Pa /etc/resolv.conf的檔案
     LOCALDEF    預設的環境變數檔案

     另見上面對 -envsav, -envset, 和 -[no] stick選項的說明.

FILES(相關檔案)
     /etc/resolv.conf
                         初始化的域名和域名伺服器地址
     ./DiG.env           預設的儲存預設選項的檔案

SEE ALSO(另見)
     named(8), resolver(3), resolver(5), nslookup(8).

STANDARDS(標準)
     RFC 1035.

AUTHOR(作者)
     Steve Hotz 
[email protected]
ACKNOWLEDGMENTS(致謝) Dig 使用了源自 nslookup(8) 的函式, 其作者為Andrew Cherenson. BUGS Dig 是蠕變特色("creeping featurism")的一個典型例項 -- 這是因在其開發過程中就考慮到了一些潛在應用而導致 的結果. 它可能會從這種嚴格的限定中受益.同樣, 他們設立的顯示位以及條目的間隔尺寸很明顯地也是一種十分特 別的創意. 當問題出在解析程式身上時, Dig 不會總是能夠正常地退出(在適合的狀況下) (注意: 絕大多數一般的exit情況是能 夠處理的). 當運行於批處理模式下時尤其惱火. 如果不能正常退出(又無法俘獲)的話, 那麼整個批處理將終止;如 果俘獲了這樣的事件, dig 就只是繼續下一個查詢罷了.