2013-03-11 51 views
4

我需要創建顯示大量站點(理想情況下最多爲1 000 000)所需的所有DNS查詢的列表。該列表需要將查詢分配給需要它們的頁面。確定所有必需的DNS查詢以顯示網站

示例:訪問google.com需要爲google.com,ssl.gstatic.com,apis.google.com和其他網站提供DNS查詢。我的名單將陪讀的

google.com:google.com,ssl.gstatic.com,apis.google.com,... 

東西線(這裏沒有相關的確切格式)

我現在有關於如何做到這兩個想法:

  1. 設置了DNS服務器日誌記錄,構建一個腳本,使用我的DNS服務器作爲解析器訪問給定的域列表
  2. 構建一個加載站點源代碼的腳本(例如Python的urllib2),解析所有嵌入的內容並構建列表的查詢將需要

這兩個想法雖然有問題。訪問1 000 000次訪問時間間隔爲2秒的域名(以便以後可以向訪問站點分配查詢),加載大約1秒鐘(這非常樂觀)將需要34天,可能會更長。但是爲了構建一個解析器,我需要所有可能的嵌入式內容形式的完整列表,這些嵌入式內容可能會導致DNS查詢,並且我還需要查詢一些目標URL(認爲iframe),並且某些內容是不可能的檢查更多的查詢(認爲連接到其他服務器的Flash內容)。

我有點卡在這裏,並會欣賞一些關於如何處理這個問題的輸入。有可能將URL列表縮短到10萬個,但更少的話會大大減少結果的使用。

對於上下文:我需要此列表來處理我提出的DNS隱私擴展攻擊策略的學士論文。

回答

1

您可以使用PhantomJS來做到這一點,因爲它提供了一個界面,可以讓您捕獲網絡請求並記錄它們,如this example

您需要編寫一些簡單的Javascript,但是因爲它是Node,因此在合理的時間內異步運行以收集所需的數據應該相當容易。

+0

謝謝。這幾乎是我昨天晚上的想法,而且您只是向我提供了一個適合的軟件解決方案的鏈接。我會檢查出來的。 – malexmave 2013-03-13 10:23:41

1

有一個工具可以做到這一點,併產生一個圖形表示。它是dnssec工具的一部分,被稱爲DNSpktflow(DNS數據包流)

它可能不會做你想要的東西,但它是開源的,所以你可以看到它們是如何做到的。

+0

感謝您的鏈接,但據我瞭解,它更像是一種顯示現有查詢的工​​具,而不是基於網站生成新的查詢。無論如何,儘管如此;-) – malexmave 2013-03-13 10:22:24