Comportamento esperado com entradas duplicadas do arquivo hosts do NT?

8

Eu sei que você não deve ter entradas duplicadas em seu arquivo de hosts do Windows NT, windows\system32\drivers\etc\hosts , mas qual é o comportamento esperado se você as tiver?

Você pode ter várias entradas com o mesmo nome de host, mas endereços diferentes no arquivo de hosts do Windows NT ( windows\system32\drivers\etc\hosts ). Quando você acessa esse host na rede, o sistema DNS do Windows irá resolvê-lo para uma dessas entradas. Como posso saber qual entrada será usada?

Por exemplo:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Editar : este exemplo específico parece forçar um comportamento especial. O loopback parece anular qualquer entrada, independentemente da ordem.

Ou:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Estou vendo a primeira entrada na lista ter precedência.

Mas o comportamento que estou vendo é garantido? É específico da versão ou geralmente não é confiável?

A razão pela qual eu pergunto é porque estou escrevendo alguns scripts para manipular hosts, e estou tentando descobrir se posso selecionar com segurança um deles para remover / comentar e esperar que não haja impacto no sistema do usuário .

    
por Merlyn Morgan-Graham 19.07.2011 / 09:55

4 respostas

1

Várias entradas com o mesmo nome de domínio são permitidas e úteis em alguns cenários.

Como descrevi na minha pergunta, parece que em casos "normais", onde esses endereços são alcançáveis pelo mesmo adaptador, o primeiro endereço parece ser aquele que é usado. Se uma dessas entradas for de loopback ( 127.0.0.1 ), poderá ter precedência.

Às vezes, faz sentido ter várias entradas com o mesmo nome de domínio, mesmo quando nenhum dos endereços for para o adaptador de loopback, se o computador for multihomed ou multiaddressable . (Obrigado JdeBP pela informação nos comentários do meu OP).

a single DNS host name can correspond to more than one IP address if each of the addresses is mapped and used in separate lines. For example, you can add lines for the following multihomed or multiaddressable DNS host computer:

10.0.0.1  host-a.example.microsoft.com
10.0.0.2  host-a.example.microsoft.com
10.0.0.3  host-a.example.microsoft.com

Acredito que a preferência / prioridade do adaptador possa desempenhar um papel aqui (que você pode configurar nas configurações de rede), embora eu não possa testá-lo. Loopback provavelmente sempre virá primeiro na preferência do adaptador.

    
por 07.12.2011 / 23:35
4

Apenas o primeiro será lido. Depois que o nome for resolvido, nenhuma leitura adicional do arquivo ocorrerá.

    
por 19.07.2011 / 12:19
1

Eu tentei 5 minutos atrás e ele é executado sem o servidor dns da seguinte maneira no arquivo de hosts do Windows:

ip1, ip2, ipx name_to_resolve

Desculpe meu inglês ...

    
por 11.05.2012 / 13:02
0

> O loopback parece substituir qualquer entrada, independentemente da ordem.

Você fez questão de fechar e reexecutar o cliente (navegador?) depois de fazer a alteração? Se você não o fizer, provavelmente ele ainda estará usando os valores antigos e não verá a alteração na ordem até que seja reiniciado. Além disso, se você tiver o serviço Cliente DNS em execução, os valores antigos serão armazenados em cache, para que você não veja a alteração.

Eu fiz alguns testes e parece que a primeira entrada é sempre aquela que é usada.

Certifique-se de reiniciar o cliente para garantir que ele esteja relendo o arquivo HOSTS e, se você tiver o serviço Cliente DNS em execução, também execute ipconfig /flushdns

    
por 13.03.2012 / 05:31