2011-10-17 18 views
1

我正在嘗試完成一些特定的測試要求。是否可以在Firefox中添加和修改DNS緩存條目?

現在的一個要求是將一些不存在的url重定向到特定的ip,這正是dns所做的。我認爲Firefox使用內部DNS緩存。但是我無法找到可用於更改此類dns緩存的正確服務。另一方面,我不知道Firefox是否支持某種服務來自定義DNS進程,我的意思是給定製的結果,而不是真正從DNS服務器獲得。

由於我需要啓動多個firefox進程併發地完成這項工作,所以我不能通過簡單地更改系統hosts文件來做到這一點,因爲這會影響其他進程。

有什麼想法?

+0

爲什麼Firefox有自己的DNS緩存?無論如何,這聽起來像是對資源的浪費,使IP棧爲你做的事情增加了一倍。 – littleadv

+0

哦,也許我不應該使用單詞「緩存」。這就像,如果你第二次引用主機,這次不應該使用DNS服務器,它應該使用內部保存的結果。當然,這樣的結果有一個到期的限制。 – winterTTr

+0

你正在描述DNS緩存,那麼爲什麼不使用「緩存」呢?只是它沒有在Firefox中完成(或者,我相信),但是在OS IP堆棧中。完全如您所述。要覆蓋DNS解析,您應該確實使用hosts文件,並且它會影響系統中的所有進程(除非它們執行自己的解析,因爲Firefox不會,因爲hosts文件的更改會影響它)。 – littleadv

回答

0

不,在Firefox中不能修改DNS響應,DNS服務僅允許觸發DNS請求。 可能做的是識別NS_ERROR_UNKNOWN_HOST響應,並以某種方式將其重定向到您的服務器。雖然認識並不特別困難,但重定向卻很複雜。您可以add a progress listener並檢查請求是否完成onStateChange方法(if (aFlag & STATE_STOP))。參數aStatus爲您提供請求的狀態,您將查找狀態Components.results.NS_ERROR_UNKNOWN_HOST。對於頂級請求(aFlag & STATE_WINDOW),您可以更改窗口位置,以向其他服務器發出請求。對於其他請求 - 不知道如何在那裏「重定向」。

+0

我會盡力的,非常感謝你。 – winterTTr

相關問題