Linux

如何獲取 Linux 機器的所有主機名/DNS 列表

  • July 1, 2016

我有一個 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.usxyz.fb.us等等,所以很明顯還有其他一些配置這些名稱的方式,我如何獲取所有主機名?

這一個班輪將工作:

ifconfig | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | xargs -L1 host

您根本無法獲得這些資訊,至少無法以可靠和完整的方式獲得。系統不需要知道指向它的域的 DNS 名稱。

如果定義了 PTR 記錄,您可以像 Brennen 所描述的那樣獲得這些記錄,但其他一切都是不可靠的。

例如,沒有什麼能阻止我為任何IP 地址設置 DNS 條目並嘗試使用該 DNS 條目連接到該地址。對於大多數協議,您將完全不知道這已經發生(HTTP 是一個主要的例外,因為它會在HOST標頭中傳輸主機名)。

引用自:https://serverfault.com/questions/785930