2008-11-27 3 views
6

Возможно ли (и если да, как) обходить DNS при выполнении HTTP-запроса?Http Request - Bypass DNS [.Net]

Я хочу попасть непосредственно передним интерфейсом с HTTP-запросом, не пройдя через NLB, но с правильным заголовком хоста. Поскольку у меня есть IP-адрес моего сервера, мне просто нужно обойти DNS.

Я попытался использовать WebRequest, заменив URL на IP и установив заголовок Host, но этот заголовок защищен.

Как я могу это сделать? Мне нужно создать запрос HTTP самостоятельно?

Примечание: редактирование файла хоста не вариант

ответ

3

мне удается делать то, что мне нужно настройки прокси-сервера в IP-адрес удаленного сервера:

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

это не работает во всех сценариях, но это было в моем случае

+0

Это должен быть принятый ответ – David 2015-01-08 21:20:48

5

В то время этот вопрос был задан, это было невозможно сделать с классом WebRequest. Однако после проблемы Microsoft Connect, возникшей в результате этого вопроса, Microsoft добавила свойство Host в класс HttpWebRequest в .NET версии 4.0. Таким образом, если вы используете .net 4.0 или новее, вы можете добиться того, чего хотите с помощью этого кода.

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

До 4 версии .Net единственным реальным вариантом является открытие сокета и сделать запрос HTTP самостоятельно или найти компонент третьей партии, которая имеет больше функциональных возможностей. .

0

У меня была аналогичная проблема сама, но сумел обойти его с помощью сокетов (Как отметил Мартин Браун Вот мой ответ: https://stackoverflow.com/questions/359041/request-web-page-in-c-spoofing-the-host#359299

+0

Однако в моем случае я хочу аутентификацию Kerberos, и мне понадобится перенаправление 302. Это действительно не переписывает все эти вещи :) – Nico 2008-12-11 13:47:45

0

Вы можете использовать мое решение этой проблемы, она размещена здесь:.

How to set custom "Host" header in HttpWebRequest?

Это может помочь вам отредактировать заголовок хоста и избежать использования обходного пути прокси.