如何在 DNS 中尋找附加到一個 IP 的所有主機名稱?

如何在 DNS 中尋找附加到一個 IP 的所有主機名稱?

如果我在一台機器上配置了多個主機(阿拉apache 的 VirtualHosts),我如何找到 IP 並找到配置為存取它的所有網域?

例如,我有幾個網路和電子郵件網域連接到我的伺服器。如何找到指向它的所有域?

有可能嗎?

我擁有我擁有的所有網域的 DNS A 條目,而且我知道一些朋友的網域指向我的伺服器。我想看到的是如果人們我知道的也都指向那裡。 (或者,如果有人將他們的網域重新指向其他地方,我可以從我的伺服器中刪除他們的「舊」網站。)

答案1

不完全是,不是。這就是正向和反向 DNS 查找的差異。

正向查找是標準名稱->IP 查找。因此,您必須提前知道所有名稱。

您想要的是進行 IP-> 名稱查找,但以某種方式取得您在 Apache 配置和 DNS 中套用的所有名稱作為 A 記錄(或 CNAMES 或其他)。

您可能會發現,進行反向查找(例如 dig @nameserver $ip -x)將傳回擁有該網路區塊的人(可能是您的 ISP)為該 IP 指定的主機名稱。它的名稱可能類似於 45-23-45-231.big-isp.com,這對您來說意義不大。至關重要的是,只有一項反向記錄,但可能有很多正向記錄。

我想這可以歸結為一個問題:反向區域如何了解正向區域中的任何記錄?在大多數設定中,前向區域可供客戶進行更改,但反向區域由網路區塊的擁有者維護。這兩個系統無需了解彼此的任何資訊即可運作。

答案2

使用 DNS 協定本身不可能做到這一點,因為通常PTR每個 IP 位址只有一筆記錄,即使可能有許多A記錄指向該 IP 位址。

然而有些公司(例如http://www.ip-adress.com/)透過儲存整個 DNS 來尋找負載的結果,然後向他們自己的資料庫提供反向查詢,成功地編譯了包含您所需的內容的資料庫。

但這些資料庫不能是確定的,它們不能保證了解每個可能的領域可能碰巧指向該 IP - 他們只能記錄他們實際查找過的網域的 DNS 詳細資訊。

答案3

執行此操作的唯一方法是擁有要檢查的網域的內容資料。

透過此內容,您可以開發一個遞歸腳本來搜尋與您的 IP 相關的主機名稱(遞歸是因為最終要檢查 CNAME)。

要取得某些網域合作夥伴的數據,您可以要求輔助並使用 dig -t axfr 取得數據。

答案4

你應該檢查羅布特克斯 不是最好的網頁設計,但非常有用!您可以找到與某個 IP 關聯的所有 DNS。

當然,正如阿爾尼塔克所解釋的那樣,

使用 DNS 協定本身不可能做到這一點

這意味著網站只是大多數 DNS/IP 伺服器的龐大資料庫。這相當有效,但並不是 100% 詳盡。

相關內容