Wiem, że nie powinieneś mieć zduplikowanych wpisów w pliku hostów Windows NT windows\system32\drivers\etc\hosts
, ale jakie jest oczekiwane zachowanie, jeśli je masz?
Możesz mieć wiele wpisów o tej samej nazwie hosta, ale różnych adresach w pliku hosts Windows NT ( windows\system32\drivers\etc\hosts
). Po uzyskaniu dostępu do tego hosta w sieci system DNS systemu Windows rozpozna go na jednym z tych wpisów. Skąd mam wiedzieć, który wpis zostanie użyty?
Na przykład:
127.0.0.1 mydomain.com
192.168.1.1 mydomain.com
Edycja : Ten konkretny przykład wydaje się wymuszać specjalne zachowanie. Wydaje się, że pętla zwrotna zastępuje dowolny wpis, niezależnie od kolejności.
Lub:
192.168.1.2 mydomain.com
192.168.1.1 mydomain.com
Widzę, że pierwszy wpis na liście ma pierwszeństwo.
Ale czy zachowanie, które widzę, jest gwarantowane, czy jest specyficzne dla wersji, czy ogólnie jest zawodne?
Powodem, dla którego pytam, jest to, że piszę kilka skryptów do obsługi hostów i staram się dowiedzieć, czy mogę w wiarygodny sposób wybrać jeden z nich do usunięcia / skomentowania i oczekuję, że nie będzie to miało wpływu na system użytkownika.
źródło
127.0.0.1
to wymusza specjalne zachowanie. Zredagowałem pytanie, aby zapytać o różne scenariusze ...Odpowiedzi:
Tylko pierwszy zostanie odczytany. Po ustaleniu nazwy nie ma możliwości dalszego czytania pliku.
źródło
hosts
plik jest odczytywany w całości, gdy usługa klienta DNS jest włączona, a wiele wpisów o tej samej nazwie domeny jest całkiem uzasadnionych.Wielokrotne wpisy o tej samej nazwie domeny są dozwolone i przydatne w niektórych scenariuszach.
Jak opisałem w moim pytaniu, wydaje się, że w „normalnych” przypadkach, gdy adresy te są osiągalne przez ten sam adapter, pierwszy adres wydaje się być tym, który jest brany. Jeśli jednym z tych wpisów jest loopback (
127.0.0.1
), może mieć jednak pierwszeństwo.Czasami sensowne jest posiadanie wielu wpisów o tej samej nazwie domeny, nawet jeśli żaden z adresów nie jest do adaptera sprzężenia zwrotnego, jeśli komputer jest wieloadresowy lub adresowalny . (Dzięki JdeBP za informacje w komentarzach do mojego OP).
Uważam, że preferencje / priorytety adaptera mogą odgrywać tutaj rolę (którą można skonfigurować w ustawieniach sieciowych), chociaż nie mogę tego przetestować. Sprzężenie zwrotne najprawdopodobniej zawsze będzie pierwsze w preferencjach adaptera.
źródło
Próbowałem 5 minut temu i działa bez serwera dns w następujący sposób do pliku hosts Windows:
ip1, ip2, ipx name_to_resolve
Przepraszam za mój angielski...
źródło
> Wydaje się, że pętla zwrotna zastępuje dowolny wpis, niezależnie od kolejności.
Czy upewniłeś się, że zamknąłeś i uruchomiłeś ponownie klienta (przeglądarkę?) Po wprowadzeniu zmiany? Jeśli tego nie zrobisz, prawdopodobnie nadal będzie używać starych wartości i nie zobaczy zmiany w kolejności, dopóki nie zostanie ponownie uruchomiony. Ponadto, jeśli usługa klienta DNS jest uruchomiona, stare wartości są buforowane, więc zmiana nie będzie widoczna.
Zrobiłem kilka testów i wydaje się, że pierwszy wpis jest zawsze używany.
Uruchom ponownie klienta, aby upewnić się, że ponownie czyta plik HOSTS, a jeśli masz uruchomioną usługę klienta DNS, uruchom także
ipconfig /flushdns
źródło