【发布时间】:2012-11-11 00:06:32
【问题描述】:
我正在编写一个本地代理服务器。它已经适用于大多数请求。但有时当我想解析主机名时会遇到问题。这是我的工作:
当收到请求的标头时,我将第一行过滤掉。然后我从该行中取出 Request-URL(位于两个空格之间)并将其存储到 Uri 对象中。之后我提取主机名:string host= uri.host;
至少我做了 DNS 调用:IPAddress[] ips = Dns.GetHostAddresses(host)[0];
(这里我怎么知道,我应该拿阵列的哪个IP。这些IP有什么区别)
就像我说的,对于大多数运行良好的请求。但是有一些地址,无法解决。这里有一个例子:当我想打开 www.gmx.net 时,我首先得到 HTML 文件(这很好用)。之后,浏览器会重新加载一些 Web 对象,如图片、javascript 等。那些对象当然有一些 URL。其中一个无法解析的 URL 是: ipv4-cout.gmx.net 。 尝试解析此 URL 会导致警告:所述主机未知。
我需要知道的另一件事是:如何处理别名主机名?例如:当我在浏览器中输入主机名 gmx.de 时,它会自动将其解析为 www.gmx.net。我知道,DNS 服务器上有 CNAME 类型的 Recource Reccords,但我不知道如何实现。
【问题讨论】: