在执行HTTP请求时是否可以(如果是,如何)绕过DNS?
我想用HTTP请求直接命中前端,而不是通过NLB但使用正确的主机头.由于我拥有服务器的IP,我只需要绕过DNS.
我尝试使用WebRequest,用IP替换URL并设置Host标头,但此标头受到保护.
我怎样才能做到这一点 ?我是否需要自己创建HTTP请求?
注意:编辑主机文件不是一个选项
当问到这个问题时,WebRequest类无法做到这一点.但是,由于此问题引发了Microsoft Connect问题,Microsoft在.Net版本4.0中添加了Host属性到HttpWebRequest类.因此,如果您使用.net 4.0或更高版本,则可以使用此代码实现所需.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1");
Request.Host = "www.example.com"
Run Code Online (Sandbox Code Playgroud)
在.Net的第4版之前,唯一真正的选择是打开Socket并自己执行HTTP请求或找到具有更多功能的第三方组件.
我设法按照需要将代理设置为远程服务器的 IP 地址:
request.Proxy = new WebProxy(ip.ToString());
Run Code Online (Sandbox Code Playgroud)
它并不适用于所有情况,但它适用于我的情况。
| 归档时间: |
|
| 查看次数: |
3300 次 |
| 最近记录: |