在进行 HTTP 请求时是否有可能(如果是,如何)绕过 DNS?
我想通过 HTTP 请求直接访问前端,而不通过 NLB,但使用正确的主机标头。由于我有我的服务器的 IP,我只需要绕过 DNS。
我尝试使用 WebRequest,将 URL 替换为 IP 并设置 Host 标头,但此标头受到保护。
我怎样才能做到这一点 ?我需要自己创建 HTTP 请求吗?
注意:编辑主机文件不是一个选项
在提出这个问题时,这不可能与 WebRequest 类有关。然而,在此问题引发的 Microsoft Connect 问题之后,Microsoft 将 Host 属性添加到 .Net 4.0 版中的 HttpWebRequest 类中。因此,如果您使用的是 .net 4.0 或更高版本,则可以使用此代码实现您想要的。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1");
Request.Host = "www.example.com"
在 .Net 版本 4 之前,唯一真正的选择是打开一个 Socket 并自己执行 HTTP 请求,或者找到一个具有更多功能的第 3 方组件。
我设法做我需要将代理设置为远程服务器的 IP 地址的事情:
request.Proxy = new WebProxy(ip.ToString());
它并非在所有情况下都有效,但在我的情况下确实有效。
我自己也有类似的问题,但设法使用套接字解决了它(正如 Martin Brown 所提到的。这是我的答案:https ://stackoverflow.com/questions/359041/request-web-page-in-c-spoofing -主机#359299