0

ローカルプロキシサーバーを作成しています。リクエストの大部分ですでに機能しています。しかし、ホスト名を解決したいときに問題が発生することがあります。これが私がすることです:

リクエストのヘッダーを受信すると、最初の行を除外します。次に、その行からRequest-URL(2つのスペースの間にあります)を取り出して、Uriオブジェクトに格納します。その後、次のようにホスト名を抽出しますstring host= uri.host; 。少なくともDNS呼び出しを行います:(IPAddress[] ips = Dns.GetHostAddresses(host)[0]; ここで、どのIPを取得する必要があるかを知るにはどうすればよいですか。これらのIPの違いは何ですか)

私が言ったように、正常に機能するリクエストの大部分について。しかし、解決できないアドレスがいくつかあります。次に例を示します。www.gmx.netを開きたい場合は、最初にHTMLファイルを取得します(これは正常に機能します)。その後、ブラウザはpics、javascriptなどのいくつかのWebオブジェクトをリロードします。もちろん、これらのオブジェクトにはいくつかのURLがあります。そして、解決できないURLの1つは、 ipv4-cout.gmx.netです。このURLを解決しようとすると、次の警告が表示されます。指定されたホストは不明です。

私が知る必要があるもう一つのことは:Alias-Host-namesを処理する方法ですか?例:ブラウザにホスト名gmx.deを入力すると、自動的にwww.gmx.netに解決されます。DNSサーバーにCNAMEタイプのRecourceReccordsがあることは知っていますが、これを実装する方法がわかりません。

4

1 に答える 1

0

DNSサーバーから送信された順序で戻ってくると思いますが、特定の順序への参照は見つかりません。

Dns.GetHostAddressesメソッド

ほとんどの場合、IPアドレスは1つだけです。www.gmx.netの場合、2つあり、理論的には、これはリクエストをラウンドロビンすることを意味します。

www.gmx.net has address 212.227.223.5
www.gmx.net has address 212.227.223.4

ご参考までに。pv4-cout.gmx.netは私のマシンでは解決されず、他の方法でアクセスすると404になります。

gmx.deはwww.gmx.netに解決されず、WebサーバーにURLリダイレクトがあります。

Connecting to www.gmx.de|212.227.223.10|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.gmx.net/ [following]
于 2012-11-22T15:00:37.287 に答える