host -
使用域名伺服器查詢主機名字
host [
-l ] [
-v ] [
-w ] [
-r ] [
-d
] [
-t querytype ] [
-a ]
host [
server ]
Host 查詢 Internet 主機 的
資訊. 它 透過 一組
分佈在 國家間的
互連伺服器 獲取 這些
資訊. 預設情況下, host
只是 簡單的 做
主機名字 和 Internet 地址 的
轉換. 然而 透過
-t 或
-a 選項, 它 可以 用來
查詢 由 域名伺服器
維護的 某個主機 的
全部資訊.
引數 可以是 主機名稱,
也可以是 數字地址.
此程式 首先 把它 當做
主機的 數字地址, 如果
嘗試 失敗, 再把它 當做
主機名稱. 主機的
數字地址 由
句點隔開的 四個
十進位制數 組成, 例如
128.6.4.194. 主機名稱 由
句點隔開的 名字 組成,
例如 topaz.rutgers.edu. 除非 名字
以句點 結尾, 否則
本地域名 將 自動
新增在 後面. 因此, Rutgers 的
使用者 可以 輸入
host topaz
它 實際上 查詢
"topaz.rutgers.edu". 如果 嘗試
失敗, 就用 原來輸入的
名字 再試一次
(這裡就是 "topaz"). 郵件
和 其他 網路工具 用了
同樣的 策略. 新增在
名字 後面 的 字尾 來自
呼叫
hostname(1) 的 結果,
使用了 第一個點
後面的 全部 資料. (另見
下面
定製查詢主機名字
的 描述. )
第一個引數 是 你
打算查詢的 主機名稱.
如果 是 數字地址, 就
執行 “ 反向查詢 (inverse query)
” 也就是說, 域名系統
檢視 一系列 獨立的
資料庫, 把 數字地址
轉換成 名字.
第二個 引數 是 可選的.
它 允許你 指定查詢
某個 特定的 伺服器.
如果 沒有 使用
這個引數, 就用 預設
伺服器 (一般是本地機).
如果 指定了 名字, 你
可以見到 三個
不同種類的 輸出.
這裡是 它們的 例子:
% host sun4
sun4.rutgers.edu is a nickname for ATHOS.RUTGERS.EDU
ATHOS.RUTGERS.EDU has address 128.6.5.46
ATHOS.RUTGERS.EDU has address 128.6.4.4
ATHOS.RUTGERS.EDU mail is handled by ARAMIS.RUTGERS.EDU
使用者 鍵入的命令 是
“
host sun4 ” 第一行 表明
“ sun4.rutgers.edu ” 實際上 是
別名. 正式名字 是 “
ATHOS.RUTGERS.EDU ” 接下來 兩行
顯示 地址. 如果 系統 有
多個 網路介面, host 就
分別 顯示 每個 介面 的
地址. 最後一行 表明
ATHOS.RUTGERS.EDU 不接收 屬於它的
郵件, 郵件 由 ARAMIS.RUTGERS.EDU
處理. 由於 某些系統
擁有 多個 處理郵件的
系統, 可能 會有 多行
這樣的顯示. 從
技術角度 看, 我們 認為
每個 能夠 接收郵件 的
系統 應該有 這樣的項.
如果 系統 接收
它自己的 郵件, 應該
有一項 提及 該系統
自身; 例如:
Li XXX mail is handled by XXX
然而, 很多 能夠 接收
自己郵件 的 系統
不願意 提及 這個事實.
如果 系統 有一項
Li mail is handled by ,
但是 沒有 地址, 這 表明
它 不是 Internet 的 一部分,
而是 在 網路上 轉發
郵件 的 系統. Usenet, Bitnet 和
許多 其他網路 都有
類似項.
在 主機名字 前面 能夠
使用 很多 選項. 大多數
選項 只對 維護
域名資料庫 有意義.
- -w
- 這一項 導致 host
永久 等待 應答.
正常情況下, 大約
一分鐘後 產生 超時.
- -v
- 以 "繁瑣" 格式
輸出, 它是 正式的
主域檔案格式, 在
手冊頁 named(8) 中 有描述.
沒有 這個選項 時,
基本術語 的 輸出
仍然 遵循 這個 格式,
但是 試圖 對
普通使用者 顯示的
更智慧些. 如果
不使用 -v , 所有的 "a",
"mx", 和 "cname" 專案
顯示成 相應的 "has address",
"mail is handled by" 和 "is a nickname for",
而且 不顯示 TTL
和型別.
- -r
- 查詢時 關閉 遞迴.
這 意味著 名字伺服器
只返回 它 自身
資料庫 的 資料. 不向
其他伺服器 詢問 更多
資訊.
- -d
- 開啟 除錯功能.
顯示 網路應答細節.
-
-t querytype
- 允許 指定 querytype 來
查詢 某個資訊.
手冊頁 named(8) 中 定義了
這些 引數.
目前支援的 型別有: a , ns
, md , mf , cname , soa , mb , mg , mr , null , wks , ptr , hinfo , minfo
, mx , uinfo , uid , gid , unspec . 另外,
萬用字元 (可以 寫成 any
或 * ) 可以 指定 上面的
任意(全部) 型別. 型別
必須是 小寫字元.
注意 預設 搜尋順序
首先是 a , 然後是 mx ,
除非 打開了 -v 選項, 使
預設值 只是 a . -t 選項
在過濾 host
返回的資訊 時
非常有用. 更多的
內容 參見 下面 -l 選項
的 說明.
- -a
- 全部 ; 等同於 -v -t any
- -l
- 列出 全部域項;
例如:
host -l rutgers.edu
將 列出 rutgers.edu 域 中
所有的 主機.
-t 選項 可以 按需 過濾
收到的資訊. 預設值
是 地址資訊, 包括 PTR 和
NS 記錄.
host -l -v -t any rutgers.edu
命令 以
正式主域檔案格式
下載 rutgers.edu 的 全部 區域(zone)
資料. (然而 由於 某些
複雜原因, SOA 記錄
顯示了 兩次.)
注意: -l 執行 全部的
區域 傳輸, 然後 過濾出
要求的 資訊. 所以
萬不得已 才用 這個
命令.
一般說來, 如果 使用者
給出的 名字 中 不含
任何 句點, host 就把
預設域名 新增在
它的末尾. 預設域名
能夠 定義 在
/etc/resolv.conf 中,
但是 通常 從 本機名字
的 第一個 句點 後面
提取. 使用者 可以 透過
環境變數
LOCALDOMAIN 指定
不同的 預設域名. 另外,
使用者 可以 自定義
主機名字 的 縮寫. 縮寫
存放在 某個檔案 中,
一行 一項, 格式是 一個
縮寫名字, 一個 空格,
然後是 完整的 主機名.
這個 名字檔案 必須 用
HOSTALIASES 環境變數 指出.
- HOSTALIASES
- 名字檔案, 含有
(主機別名,主機全名)
對.
- /etc/resolv.conf
named(8),
resolver(5)
當你 輸入的 名字
不屬於 本地域 時, 將會
出現 不希望 的 現象.
請記住 除非
輸入的名字 以 點 結尾,
否則 本地域名 總會
附加在 它 後面, 失敗後
才使用 原來的 名字.
-l 選項 只 聯絡 指定域 中
的 第一個 名字伺服器.
如果 這個 伺服器 宕機,
你 應該 手工 指定 一個
伺服器. 例如, 要 獲取 foo.edu
的清單, 可以 用
host -t ns foo.edu
獲得 foo.edu 的 全部
名字伺服器, 然後 用
host -l foo.edu xxx
試驗 每一個 xxx
名字伺服器, 直到 碰上
能用的.
徐明 <
[email protected]>
2003/05/13
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh