Статьи на тему Интернет и Интернет-программирования на AC-Power

Использование файла hosts в Windows9x


На главную страницу | Интернет | Хостинг | Сервисы

Файл hosts находится в Windows-директории. Он определяет соответствие доменных имен IP-адресам. При обращении к определенному доменному имени Windows сначала ищет это имя в файле hosts; если его там нет, тогда идет обращение к DNS.

После установки Windows в вышеуказанной директории находится файл hosts.sam - пример файла hosts для имени localhost. Однако, чтобы этот файл начал работать, нужно переименовать его в hosts (без расширения).

Формат этого файла очень простой:

1. каждое соответствие адреса и имени должно находиться в отдельной строке;
2. в начале строки указывается IP-адрес, а за ним - доменное имя; эти два поля должны разделяться хотя бы одним пробелом.
можно также указывать комментарии, каждая строка комментария должна начинаться с символа #.

В этой статье рассмотрено использование файла hosts для следующих целей:

1. Ускорение работы с Internet

2. "Перехват" доменных имен

1. Ускорение работы с Internet

Это самый очевидный и полезный случай использования файла hosts.

Обычная схема обращения к определенному интернет-серверу по его имени следующая:

1. Определение IP-адреса через DNS.
2. Установление TCP-соединения с данным IP-адресом и стандартным для данного сервиса (http, ftp, smtp...) номером порта.
3. Собственно работа.

Обращение к DNS может занимать разное время - это зависит от многих факторов. И все-таки, если Вы работаете большей частью с одними и теми же хостами (поисковые машины, интернет-библиотеки и т.п.), то время работы можно сократить за счет обращения к DNS.

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

Надо сказать, что такой подход является единственным при обращении к многим WWW-серверам: прямое обращение по IP-адресу может не получиться, и вот почему.

Целый ряд WWW-серверов использует так называемые "виртуальные хосты", т.е. фактически по одному IP-адресу может находиться несколько (часто очень много) как-бы независимых веб-серверов. Эти виртуальные сервера, как правило, отличаются доменами третьего (более редко-второго) уровня.

По полю Host заголовка HTTP-запроса веб-сервер определяет, к какому сайту идет обращение, и ведет себя соответственно. Если, скажем, сайты www.aaa.com, www.bbb.com и www.ccc.com имеют один IP-адрес 172.16.1.1, то при обращении по имени www.aaa.com сервер получит поле

Host: myhost.aaa

и поведет себя как сервер www.aaa.com.

При обращении по IP-адресу сервер получит

Host: 172.16.1.1

При этом он либо поведет себя как сервер "по умолчанию", либо выдаст сообщение об ошибке.

Если же в файле hosts записано

172.16.1.1 www.aaa.com

и пользователь обращается по имени, то сервер получит нормальное поле Host.

Узнать IP-адреса можно разными путями, наиболее удобно использовать специализированную программу (такая программа на Perl есть в нашей коллекции Perl-скриптов).

Если же у Вас нет Perl и Вы не собираетесь его ставить, то можно использовать специальные программы (DNS Resolver), специально предназначенные для обращения к DNS. Можно использовать ответы программы ping, входящей в поставку Windows. Для этого нужно выполнить командную строчку:

ping <имя хоста>.

В ответе программы будут строчки вида:

Reply from (ip-адрес этого хоста);.

Можно также воспользоваться IE, дав URL с определяемым именем хоста. В строке состояния сначала появится Поиск узла..., затем - Соединение с узлом IP-адрес. Просто запишите его.

2. "Перехват" доменных имен.

Используя то обстоятельство, что записи в файле hosts имеют больший приоритет, чем обращение к DNS, с помощью этого файла можно делать различные "фокусы".

Допустим, у Вас на машине стоит web-сервер. К нему можно обратиться по адресу "локального хоста" 127.0.0.1 .

Теперь, если Вы запишете в hosts-файл строчку вида

127.0.0.1 a.b.c

(где a.b.c - доменное имя некоторого хоста),
то все обращения к доменному имени a.b.c пойдут на Ваш локальный хост! Windows определит для имени a.b.c адрес 127.0.0.1, и дальше все пойдет как обычно.


На главную страницу | Интернет | Хостинг | Сервисы

Профессиональный хостинг от 5$ в месяц