Http-запрос - обход DNS [.Net] - PullRequest
       32

Http-запрос - обход DNS [.Net]

7 голосов
/ 27 ноября 2008

Можно ли (и если да, как) обойти DNS при выполнении HTTP-запроса?

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

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

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

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

Ответы [ 4 ]

5 голосов
/ 27 ноября 2008

В то время, когда задавался этот вопрос, это было невозможно сделать с классом 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 единственным реальным вариантом было открыть Socket и выполнить HTTP-запрос самостоятельно или найти сторонний компонент, который имеет больше функций.

2 голосов
/ 11 декабря 2008

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

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

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

0 голосов
/ 25 сентября 2013

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

Как установить собственный заголовок "Host" в HttpWebRequest?

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

0 голосов
/ 11 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...