HOST(1)

NAME (名字)
host - 使用域名伺服器查詢主機名字

SYNOPSIS (總覽)
host [ -l ] [ -v ] [ -w ] [ -r ] [ -d ] [ -t querytype ] [ -a ] host [ server ]

DESCRIPTION (描述)
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)

BUGS
當你 輸入的 名字 不屬於 本地域 時, 將會 出現 不希望 的 現象. 請記住 除非 輸入的名字 以 點 結尾, 否則 本地域名 總會 附加在 它 後面, 失敗後 才使用 原來的 名字.

-l 選項 只 聯絡 指定域 中 的 第一個 名字伺服器. 如果 這個 伺服器 宕機, 你 應該 手工 指定 一個 伺服器. 例如, 要 獲取 foo.edu 的清單, 可以 用

host -t ns foo.edu

獲得 foo.edu 的 全部 名字伺服器, 然後 用

host -l foo.edu xxx

試驗 每一個 xxx 名字伺服器, 直到 碰上 能用的.

[中文版維護人]
徐明 <xuming@users.sourceforge.net>

[中文版最新更新]
2003/05/13

《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh