NSlookup命令的用法
用了域名服務器後,經常要查詢域名的解析情況,nslookup是常用工具之一,無論是linux或者是window下都有這個工具,用好它對平常的域名解析情況,或者對域名服務器的維護都有幫助。
用途
nslookup [ -Option ... ][ Host ] [ -NameServer ]
nslookup 命令以兩種方式查詢域名服務器。交互式模式允許查詢名稱服務器獲得有關不同主機和域的信息,或打印域中主機列表。在非交互式模式,打印指定的主機或域的名稱和請求的信息。
當沒有給出參數時進入交互式模式,或者當第一個參數是 -(減號)並且第二個是主機名或名稱服務器的因特網地址時,nslookup 命令進入交互式模式。當沒有給出參數時,命令查詢缺省名稱服務器。-(減號)調用可選的子命令(-Option... 變量)。除了 set 命令,這些命令在命令行指定並且必須在nslookup 命令參數之前。set 子命令選項能在用戶主目錄的 .nslookuprc 文件有選擇的指定。
當第一個參數是正在搜索的主機的名稱或地址,nslookup 命令在非交互式模式下執行。在此情況下,主機名或名稱服務器的因特網地址是可選的。
非交互式命令使用缺省名稱服務器或由 NameServer 參數指定的名稱服務器爲指定的主機搜索信息。如果Host 參數指定因特網地址並且查詢類型是 A 或 PTR,則返回主機名稱。如果 Host 參數指定名稱並且名稱沒有結尾句點,缺省的域名追加到名稱後。不在當前域中查找主機,在名稱後追加單一的句點。
注:如果在用戶主目錄的 .nslookuprc 文件指定,set 子命令的domain、srchlist、defname 和 search 選項能影響非交互式命令的行爲。
下列命令可以隨時輸入 Ctrl-C 按鍵順序終止。要退出,請輸入 Ctrl-D 按鍵順序或輸入 exit。將內置命令作爲主機名,在它之前帶轉義字符 \。不能標識的命令解釋爲主機名。
1. 更改缺省查詢類型類型爲主機信息(HINFO)並且初始超時時間爲 10 秒,請輸入:
nslookup -query=hinfo -timeout=10
2. 設置域和搜索列表爲三個名稱,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,請輸入:
nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
該命令覆蓋缺省域名和 set domain 命令的搜索列表。使用 set all 命令顯示列表。
nslookup -querytype=ANY austin.ibm.com
nslookup 命令返回有關名稱 austin.ibm.com 的所有可用的信息,包括權限語句(SOA)、名稱服務器、郵件交換器和主機因特網地址信息,如下:
Server: benames.austin.ibm.comAddress: 9.3.199.2 austin.ibm.com origin =ausname1.austin.ibm.com mail addr = brian.chriss.austin.ibm.comserial=1993081210,refresh=3600,retry=300,expire=604800, min=86400austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.com nameserver =bb3names.austin.ibm.com austin.ibm.com nameserver = benames.austin.ibm.comaustin.ibm.com nameserver = b45names.austin.ibm.com austin.ibm.com nameserver =bbcnames.austin.ibm.com austin.ibm.com nameserver = netmail.austin.ibm.comaustin.ibm.com preference = 10, mail exchanger = netmail.austin.ibm.comaustin.ibm.com inet address = 129.35.208.98 ausname1.austin.ibm.com inetaddress = 129.35.17.2 bb3names.austin.ibm.com inet address = 129.35.208.99benames.austin.ibm.com inet address = 9.3.199.2 b45names.austin.ibm.com inetaddress = 129.35.49.2 bbcnames.austin.ibm.com inet address = 129.35.17.68netmail.austin.ibm.com inet address = 129.35.208.98
nslookup 命令與 host 命令的應答相同。命令返回域名和 opus 主機的因特網地址,如下:
Name: opus.austin.ibm.com Address: 129.35.129.223
如果主機 opus 已經是名稱服務器(以空 /etc/resolv.conf 文件正在運行 named 守護程序的主機),下列信息將會顯示:
Server: loopback Address: 0.0.0.0
當查詢請求不成功,則 nslookup 命令返回下列錯誤消息之一:
表示服務器在超出指定的重試次數後不響應請求。 | |
表示名稱服務器不在服務器上運行。 | |
表示服務器沒有主機的指定查詢類型的資源記錄,即使主機名有效。 | |
表示主機或域名不存在。 | |
表示在查詢時,不能連接到名稱或遠程用戶信息服務命令服務器。該錯誤是與 ls 和 finger 請求有關的典型錯誤。 | |
表示在查詢時,不能連接到名稱或遠程用戶信息服務命令服務器。該錯誤是與 ls 和 finger 請求有關的典型錯誤。 | |
表示名稱服務器遇到內部矛盾並且不能返回有效的應答。 | |
表示名稱服務器拒絕請求服務。 | |
表示名稱服務器拒絕數據包請求因爲格式不正確。 |
包含 nslookup 命令。 | |
包含初始域名和名稱服務器地址。 | |
包含用戶的初始選項。 | |
包含主機別名。 | |
包含覆蓋的缺省域。 |
***值得提醒的是命令行參數中的[- name server]上的-後要有一空格,實際上 - 是第一個參數,曾經許多人都覺得這個參數不對,不能在命令行指定域名服務器,實際上都是這個原因。這個用法對檢查某個域名服務器的解析是否正確很有用。比如三個運營商在當地的域名解析是否正確,就不用採用每次都修改電腦的域名服務器來實現,只要在命令行加上這個參數就行。
***nslookup不能查詢dns的遞歸或者迭代,功能也比dig弱。