5

Используя файл хостов Windows, можно перенаправить трафик домена на определенный IP-адрес, например

domainA.com -> 127.0.0.1

Я ищу ПРОСТОЙ способ сделать то же самое, но для целевого доменного имени не для целевого IP-адреса (так как это динамический), т.е.

domainA.com -> domainB.com


Дополнение: После получения некоторых первоначальных ответов я думаю, что мне нужно конкретизировать мой вопрос.

Ситуация: у меня есть приложение, которое ищет IP целевого домена через DNS и затем подключается через HTTP к IP-адресу. У меня нет контроля над настройками прокси.

Вариант 1 В основном я ищу способ:

  • перехватывать запросы DNS для домена a.com
  • запустить DNS-запрос для домена B.com
  • отправить IP домена domainB.com в ответ на запрос для domainA.com

Без запуска всего DNS-сервера.

Вариант 2 Если DNS-сервер является единственным способом, в качестве альтернативы я также был бы рад решению, как определить нестандартный DNS-сервер для одного приложения. Любые идеи для приложений оболочки и т.д.?

4 ответа4

5

Редактировать - после повторного прочтения вашего вопроса, я не думаю, что это будет возможно без локального DNS-сервера, на который можно указать, поскольку файл hosts поддерживает только FQDN -> IP. Тем не менее, я думаю, что лучшим выбором будет либо локальный прокси-сервер с перенаправлением, либо дополнение, которое может переписать заголовки хоста.

Тем не менее, я написал руководство, которое может вас заинтересовать, которое, надеюсь, объяснит вам немного лучше ...:

Это не очень легко объяснить, поэтому, если у вас есть какие-либо дополнительные вопросы, пожалуйста, напишите в комментариях, и я буду рад помочь:

Это невозможно, НО ставить результаты IP в один и тот же конечный результат.

Помните, в конце концов, все, что происходит, когда вы выбираете FQDN (полное доменное имя), это то, что он преобразует этот адрес в IP-адрес.

Если вы хотите отправить любой посетитель domainA.com в domainB.com вы просто положить «ф s , как domainB.com domainA.com запись s в файле хостов.

В результате НИЧЕГО нацеливается на сайт domainA.com а не перенаправляется на domainB.com .

ОДНАКО Я предполагаю, что вы хотите перенаправить сайт. Веб-сайты намного сложнее, часть протокола отправляет нечто, известное как Host Header . Здесь веб-браузер связывается с веб-сервером и сообщает ему адрес, к которому он пытается получить доступ.

Например, посещение Google.com показывает следующее:

(Обратите внимание на строку Host: :).

Вы также можете посетить Google.com по его IP-адресу - http://74.125.230.115 - это потому, что у них настроена запись по умолчанию, которая обслуживает все запросы, НЕ соответствующие заголовку узла.

Таким образом, когда вы посещаете domainA.com возможно, что domainB.com обслуживает контент domainB.com только domainB.com у кого заголовок узла установлен на domainB.com .

Что вам нужно сделать, это использовать прокси-сервер, брандмауэр (DPI) или какое-то дополнение, которое фактически переписывает Host Header/redirects. В качестве альтернативы, если вы контролируете веб-сервер domainB.com, вам просто нужно добавить domainA.com к адресам, которые он будет прослушивать, - а затем к любому заголовку узла с domainA.com - он будет отвечать domainB.com .

Добавление заголовков узлов в IIS:

1

Вы можете настроить такие действия перенаправления с Privoxy.

1

Третье решение

помимо настройки dns-сервера и добавления хука в gethostbyname:

Зарегистрируйте скрипт как сервис, который периодически разрешает domainB.com и изменяет запись domainA.com в файле /etc /hosts. Поскольку большинство записей DNS не меняется очень часто, достаточно запустить скрипт при запуске или один раз в день.

Я использую такой скрипт для обновления списка доменов на моих домашних компьютерах.

1

Решение к варианту 2

В случае, если у кого-то еще возникнет эта проблема в будущем: можно перехватывать запросы DNS из одного приложения без использования файла hosts, который влияет на все функции.

См. CodeProject «Перехват и перезапись DNS-запросов с использованием регулярных выражений» Дэна Фарино

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .