我在寫本地代理服務器。它已經適用於大多數請求。但是,當我想要解析主機名時,有時候我遇到問題。這是我做的:如何在本地代理服務器中執行DNS請求?
當收到請求的標題時,我過濾出第一行。然後,我將Request-URL(位於兩個空格之間)從該行中取出並存儲到Uri對象中。在那之後我提取與主機名:string host= uri.host;
至少我做DNS-電話:IPAddress[] ips = Dns.GetHostAddresses(host)[0];
(我怎麼知道這裏,該陣列我應該採取的IP請告訴我之間的那些IP的區別。)
就像我說,對於大多數請求工作正常。但有一些地址不能解決。這裏舉一個例子:當我想打開www.gmx.net,我首先得到HTML文件(這工作正常)。之後,瀏覽器重新加載一些網頁對象,如圖片,JavaScript等。那些對象當然有一些URL。其中一個網址無法解析:ipv4-cout.gmx.net。 嘗試解析此URL會導致警告:聲明的主機不明。
我需要知道的另一件事是:如何處理別名主機名?例如:當我將主機名gmx.de輸入瀏覽器時,它會自動將其解析爲www.gmx.net。我知道,在CNAME類型的DNS服務器上有Recource Reccords,但我不知道如何實現這一點。