Я знаю, что у вас не должно быть повторяющихся записей в вашем файле хостов Windows NT, windows\system32\drivers\etc\hosts
но каково ожидаемое поведение, если они у вас есть?
Вы можете иметь несколько записей с одним и тем же именем хоста, но разными адресами в файле хостов Windows NT ( windows\system32\drivers\etc\hosts
). При доступе к этому хосту в сети DNS-система Windows преобразует его в одну из этих записей. Как я могу сказать, какая запись будет использоваться?
Например:
127.0.0.1 mydomain.com
192.168.1.1 mydomain.com
Изменить : этот конкретный пример, кажется, вызывает особое поведение. Кажется, что петля отменяет любую запись, независимо от порядка.
Или:
192.168.1.2 mydomain.com
192.168.1.1 mydomain.com
Я вижу, что первая запись в списке имеет приоритет.
Но гарантировано ли поведение, которое я вижу, оно зависит от версии или вообще ненадежно?
Причина, по которой я спрашиваю, заключается в том, что я пишу несколько сценариев для обработки хостов, и я пытаюсь выяснить, могу ли я надежно выбрать один из них для удаления / комментирования, и ожидаю, что это не окажет влияния на систему пользователя.
источник
127.0.0.1
кажется, вызывает особое поведение. Я отредактировал вопрос, чтобы спросить о различных сценариях ...Ответы:
Только первое будет прочитано. После того как имя было разрешено, дальнейшее чтение файла не происходит.
источник
hosts
файл полностью читается, когда включена служба DNS-клиента, и несколько записей с одним и тем же доменным именем вполне законны.Несколько записей с одним и тем же доменным именем разрешены и полезны в некоторых сценариях.
Как я описал в своем вопросе, кажется, что в «нормальных» случаях, когда эти адреса достижимы одним и тем же адаптером, первый адрес, по-видимому, выбирается. Если одна из этих записей является loopback (
127.0.0.1
), она может иметь приоритет.Иногда имеет смысл иметь несколько записей с одним и тем же именем домена, даже если ни один из адресов не относится к адаптеру обратной связи, если компьютер является многосетевым или многоадресным . (Спасибо JdeBP за информацию в комментариях к моему OP).
Я полагаю, что предпочтение / приоритет адаптера может сыграть здесь роль (которую вы можете настроить в настройках сети), хотя я не могу проверить это. Loopback, скорее всего, всегда будет первым в предпочтении адаптера.
источник
Я пробовал 5 минут назад, и он работает без DNS-сервера по следующему пути в файл хостов Windows:
ip1, ip2, ipx name_to_resolve
Извините мой английский...
источник
> Кажется, что петля отменяет любую запись, независимо от порядка.
Обязательно ли закрывать и перезапускать клиент (браузер?) После внесения изменений? Если вы этого не сделаете, то, скорее всего, он все еще будет использовать старые значения и не увидит изменения в порядке, пока не будет перезапущен. Кроме того, если у вас запущена служба DNS-клиента, старые значения кэшируются, поэтому вы не увидите изменения.
Я сделал несколько тестов, и кажется, что первая запись всегда используется.
Обязательно перезапустите клиент, чтобы убедиться, что он перечитывает файл HOSTS, и, если у вас запущена служба DNS-клиента, также запустите
ipconfig /flushdns
источник