如何獲取 Linux 機器的所有主機名/DNS 列表
我有一個 Linux 機器,我知道我可以使用以下命令獲取分配給該機器的 IP 地址列表,
/sbin/ifconfig -a
但是如何使用單個命令獲取該 Linux 機器的主機名/DNS 列表?為什麼我問這個是因為使用
/sbin/ifconfig -a
我看到有大約 6 個乙太網連接到它,並且其中 4 個處於活動狀態。現在,所有這些都有不同的 IP 地址,所以我的 Linux 機器有 4 個不同的 IP 地址(如果我在這裡錯了,請糾正我??)。現在,我的 Weblogic 應用程序伺服器已將偵聽地址定義為,讓我們說abc.fb.us
等等xyz.fb.us
。現在,當我 ping 每個主機名(我應該呼叫abc.fb.us
主機名還是 DNS 或別名??)然後我得到一些 IP 地址,當我這樣做時列出ifconfig
。我知道我能做到
nslookup 172.22.33.11
,而且我會得到abc.fb.us
,假設那是 的 IP 地址abc.fb.us
。但我想使用單個命令獲取主機名列表,就像我獲取 IP 地址列表的方式一樣。
我已經檢查了我的
/etc/hosts
,但它沒有abc.fb.us
,xyz.fb.us
等等,所以很明顯還有其他一些配置這些名稱的方式,我如何獲取所有主機名?
這一個班輪將工作:
ifconfig | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | xargs -L1 host
您根本無法獲得這些資訊,至少無法以可靠和完整的方式獲得。系統不需要知道指向它的域的 DNS 名稱。
如果定義了 PTR 記錄,您可以像 Brennen 所描述的那樣獲得這些記錄,但其他一切都是不可靠的。
例如,沒有什麼能阻止我為任何IP 地址設置 DNS 條目並嘗試使用該 DNS 條目連接到該地址。對於大多數協議,您將完全不知道這已經發生(HTTP 是一個主要的例外,因為它會在
HOST
標頭中傳輸主機名)。