2008-11-27 19 views
6

¿Es posible (y en caso afirmativo, cómo) omitir DNS al hacer una solicitud HTTP?Http Request - Bypass DNS [.Net]

Quiero golpear directamente un front-end con una solicitud HTTP, sin pasar por NLB pero con el encabezado de host correcto. Como tengo la IP de mi servidor, solo necesito eludir el DNS.

Intenté usar WebRequest, reemplazando la URL con la IP y estableciendo el encabezado de host, pero este encabezado está protegido.

¿Cómo puedo hacer eso? ¿Necesito crear la solicitud HTTP yo mismo?

Nota: archivo de host de edición no es una opción

Respuesta

3

me las arreglo para hacer lo que necesito configurar el proxy para la dirección IP del servidor remoto:

request.Proxy = new WebProxy(ip.ToString()); 

no funciona en todos los escenarios, pero lo hizo en mi caso

+0

Esta debería ser la respuesta aceptada – David

5

En el momento en que se hizo esta pregunta esto no era posible hacerlo con la clase WebRequest. Sin embargo, después de un problema de Microsoft Connect planteado como resultado de esta pregunta, Microsoft agregó la propiedad Host a la clase HttpWebRequest en .Net versión 4.0. Como tal, si está utilizando .net 4.0 o posterior, puede lograr lo que quiera con este código.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1"); 
Request.Host = "www.example.com" 

Antes de la versión 4 de .Net la única opción real es abrir un zócalo y hacer lo mismo HTTP solicitar o encontrar un componente de tercera parte que tiene más funcionalidad. .

Cuestiones relacionadas