Como o Windows sabe que está conectado?

Como o Windows sabe que está conectado?

O Windows 7, bem com o Windows Vista, oferecem suporte ao NCSI (Network Connectivity Status), um serviço de rede que permite ao sistema descobrir quando possui acesso completo à Internet, acesso limitado ou acesso apenas à rede local, ou que não tem acesso de rede algum, bem como detectar a conexão a uma rede Wi-Fi que exige autenticação através do navegador.

Uma vez que o sistema detecta a presença de um link de rede, a detecção do acesso à web é feito através de um site, o www.msftncsi.com. O sistema começa tentando baixar o “http://www.msftncsi.com/ncsi.txt“, um arquivo de texto simples que contém apenas a string de texto “Microsoft NCSI”. Se o servidor responde com o status “200 OK” e o arquivo é baixado sem problemas, ele presume que a conexão oferece acesso completo à Internet, já que em teoria todos os elementos necessários à navegação (resolução de DNS, envio e recebimento) estão funcionando.

Caso o arquivo não seja recebido, ou a requisição seja redirecionada, o sistema insiste realizando uma requisição de DNS do domínio “dns.msftncsi.com”, que deve retornar o endereço IP “131.107.255.255”. Caso a requisição seja bem sucedida, mas a página permaneça inacessível, então ele presume que a conexão está funcionando, mas que um sistema de autenticação via navegador está bloqueando a navegação, o que resulta em um pop-up sugerindo a abertura do browser. Caso a requisição DNS falhe ou retorne um endereço incorreto, então ele presume que a conexão não está funcionando e mostra um status de “Sem acesso à Internet” na conexão.

A ordem com que o sistema executa estes passos pode variar de acordo com fatores como o fato da conexão estar salva ou não e o sistema de encriptação usado na rede Wi-Fi, mas os passos são sempre os mesmos, com requisições HTTP e DNS. Você pode monitorar estas tentativas de conexão usando o Wireshark ou outro sniffer de rede.

O NCSI funciona bem na maior parte do tempo e pode ser considerado um serviço de rede útil para usuários iniciantes, que não saberiam como diagnosticar problemas de conexão sozinhos. Por outro lado, o fato de o sistema acessar um site da Microsoft deixa alguns inconfortáveis em relação à privacidade, já que de acordo com a própria documentação da Microsoft, os endereços IP e horários dos acessos ao msftncsi.com são logados.

Se este é o seu caso, você pode desativar o NCSI através de uma chave de registro. Para isso, acesso a “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet” e altere o valor da chave “EnableActiveProbing” de “1” para “0“.

Fazendo isso, as requisições deixam de ser feitas, mas como esperado o sistema deixa de detectar o status da conexão, dizendo sempre que o sistema tem acesso à Web, mesmo que na realidade a conexão não esteja funcionando.

Se você quer vender o bolo e comê-lo ao mesmo tempo, o registro permite também que você crie seu próprio servidor NSCI e configure as estações da sua rede para checarem a conexão conectando-se a ele, em vez de ao servidor da Microsoft, o que é surpreendentemente simples.

O primeiro passo é copiar o arquivo de texto “ncsi.txt” para o diretório raiz de um endereço web qualquer, como por exemplo “www.hardware.com.br/ncsi.txt“. Como vimos, este é um arquivo de texto simples, contendo apenas o texto “Microsoft NCSI“. Se quiser, você pode também alterar o conteúdo do arquivo, especificando-o na chave “ActiveWebProbeContent

Em seguida, altere as chaves “ActiveWebProbeHost” e “ActiveDnsProbeHost“, apontando para o endereço do seu site, como em “www.hardware.com.br” e a opção “ActiveDnsProbeContent“, que deve apontar para o endereço IP do servidor, como em “208.43.96.226”. Fazendo isso o serviço volta a funcionar, mas agora enviando as requisições para o seu próprio servidor.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X