Há um equívoco geral sobre como o arquivo HOSTS no Windows e a ferramenta nslookup interagem. O valor que você digita no arquivo HOSTS é o que é usado pelo sistema quando você estabelece uma conexão com qualquer nome de domínio que você possa especificar. Isso é essencialmente codificado por você inserindo-o no arquivo HOSTS. No entanto, nslookup ignora o arquivo HOSTS para qualquer coisa diferente de localhost. Tente isto: adicione uma entrada ao seu arquivo HOSTS e salve o arquivo. Faça um nslookup: ele deve retornar o endereço IP real (ou nenhum se o endereço real não existir). Agora pingue o host. Deve pingar o IP que você especificou no arquivo HOSTS.
Eu não sei a razão exata para esse comportamento, mas acredito que pode ser que o nslookup sempre faça uma consulta DNS e, para qualquer coisa em *.localhost
, ele pergunte à máquina local qual é o endereço (daí você resultado do arquivo HOSTS), mas para qualquer outra coisa, ele pergunta ao servidor DNS que você configurou. Esta parte é apenas especulação, mas o comportamento real que descrevi é algo que observei muitas vezes.