1

Я думаю, что это может быть невозможно из-за того, как протокол TCP/IP определяет пакеты, но я решил спросить.

Некоторые сайты, например на общих серверах, используют один и тот же IP-адрес, и сервер доставляет сайт на основе запрошенного имени хоста /URL-адреса. В этой ситуации выполнение DNS-поиска IP-адреса сайта и прямой переход к IP-адресу обычно доставляют некоторый другой контент, который не является сайтом с заданным именем хоста.

Есть ли способ сделать это обоими способами и запросить сайт с использованием IP-адреса, но при этом запрос по-прежнему отображает имя хоста / URL, чтобы сервер на другом все еще обрабатывал запрос, как если бы вы указали URL-адрес, и он был разрешен с помощью DNS?

Конкретный вариант использования для меня - отключение частного DNS-сервера, так что мой браузер может получить доступ только через необработанный IP-адрес (который я зарезервировал), но сайт должен иметь URL-адрес для доставки правильного содержимого. Однако я думаю, что просто знать, что это возможно, интересно само по себе, и методика, которую стоит знать в целом.

1 ответ1

1

Если вы измените файл /etc /hosts и добавите в него IP-адрес и сайт, вы сможете выбрать сайт по URL-адресу со стандартным браузером, так как этот файл обычно читается перед DNS и решит проблему за вас.

Я не знаю, поддерживают ли его какие-либо браузеры (если вы не называете curl браузером), но технически возможно запросить сайт, используя IP-адрес, а не URL-адрес. Проблема в том, чтобы сделать это.

Чтобы разрешить несколько сайтов HTTP на одном IP-адресе, веб-браузеры используют спецификацию HTTP 1.1. Эта спецификация означает, что после подключения к IP-адресу через порт 80 браузер затем сообщает веб-серверу имя сервера, с которого он запрашивал контент. Таким образом, используя приличный клиент telnet, вы можете получить дамп нужного вам сайта. (Если вы выгружаете вывод в файл, вы, вероятно, можете отобразить его в браузере!)

Пример сеанса может быть таким. Допустим, вы хотите перейти на домашнюю страницу сайта "www.lightbox.net.nz/", которая находится на сервере, настроенном по умолчанию для создания другой страницы при доступе через IP-адрес 60.234.77.229.

telnet 60.234.77.229 80         (Typed)                                   
Connected to 60.234.77.229.     (Server Response)
Escape character is '^]'.       (Server response)
GET /index.php HTTP/1.1         (Typed - to request the root web page using http/1.1 protocol)
host: www.lightbox.net.nz     (Tell the server which site you want)
                                (blank line to tell it you have finished asking)
Output of http://www.lightbox.net.nz/index.php shown here.

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