2008-11-27 4 views
6

Ist es möglich (und wenn ja, wie) DNS bei einer HTTP-Anfrage zu umgehen?HTTP-Anforderung - DNS umgehen [.Net]

Ich möchte direkt ein Front-End mit einer HTTP-Anfrage schlagen, ohne durch NLB, aber mit dem richtigen Host-Header. Da ich die IP meines Servers habe, muss ich nur den DNS umgehen.

Ich habe versucht, WebRequest zu verwenden, die URL mit der IP zu ersetzen und den Hostheader zu setzen, aber dieser Header ist geschützt.

Wie kann ich das tun? Muss ich die HTTP-Anfrage selbst erstellen?

Hinweis: Bearbeitung Host-Datei ist keine Option

Antwort

3

schaffe ich zu tun, was ich brauche den Proxy die IP-Adresse einstellen des Remote-Servers:

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

es ist nicht in allen Szenarien funktioniert, aber es hat in meinem Fall

+0

Dies sollte die akzeptierte Antwort sein – David

5

Zu der Zeit diese Frage gestellt wurde dies nicht möglich war, mit der WebRequest-Klasse zu tun. Nach einem Microsoft Connect-Problem, das als Ergebnis dieser Frage ausgelöst wurde, hat Microsoft die Host-Eigenschaft zur HttpWebRequest-Klasse in .NET Version 4.0 hinzugefügt. Wenn Sie also .net 4.0 oder höher verwenden, können Sie mit diesem Code erreichen, was Sie wollen.

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

Vor der Version 4 von .Net die einzige wirkliche Möglichkeit ist, einen Sockel zu öffnen und tun, um die HTTP-Anforderung selbst oder eine dritte Partei Komponente finden, die mehr Funktionalität. .