Computer Networking: Bloqueando sites indesejados - na gambiarra
O truque do arquivo hosts é bem velho. Você pode relacionar endereços IP com nomes fixos no arquivo, ou mesmo indicar um IP falso para um determinado nome ( por exemplo facebook.com ).
A ideia de usar este método, muito deselegante por sinal, é que em alguns casos você tem redes onde não há um servidor proxy ou algo do tipo, o o pessoal quer bloquear alguns sites para que os usuários não desviem do trabalho, mas apenas em algumas máquinas. Pequenos escritórios ou escolas são bons exemplos. Acaba sendo uma solução rápida e eficaz.
O arquivo deve indicar o endereço IP e o nome DNS da maquina linha por linha. Para cada nome DNS usado o sistema consulta o arquivo hosts antes do servidor DNS, então você pode envenenar o arquivo com entradas falsas. Provavelmente o seu Anti vírus vai reclamar, por isso preste atenção nele durante o procedimento.
O endereço do arquivo é o "C:\Windows\System32\drivers\etc\hosts". Abra o arquivo no bloco de notas e comece a escrever. Veja abaixo como bloquear o fcebook:
127.0.0.1 facebook.com.br
127.0.0.1 www.facebook.com.br
Salve e pronto. Veja que devem ser colocadas entradas com variações do domínio do site.
Você pode fazer um script se você usar isso em vários locais ou em várias máquinas. Fiz um exemplo de um onde é aberto um arquivo no qual você pode digitar os domínios sem se preocupar em digitar os endereços. Em seguida ele gera as entradas corretamente e salva no arquivo hosts:
if not exist "%Userprofile%\Bloqueados.txt" echo. > "%Userprofile%\Bloqueados.txt"
echo Digite em linha por linha neste arquivo os endereços que deseja bloquear.
echo Salve e feixe o bloco de notas.
set /p R= Tecle para abrir...
notepad "%Userprofile%\Bloqueados.txt"
echo Salvando relacao anterior....
type %Systemroot%\System32\Drivers\etc\hosts > %Systemroot%\System32\Drivers\etc\hosts.old
echo Carregando dominios bloqueados....
echo. > %Systemroot%\System32\Drivers\etc\hosts
echo 127.0.0.1 localhost >> %Systemroot%\System32\Drivers\etc\hosts
for /f %%B IN ( ' type "%Userprofile%\Bloqueados.txt" ' ) DO ( echo 127.0.0.1 %%B >> %Systemroot%\System32\Drivers\etc\hosts )
Assim que executado ele verifica a existência de um arquivo "Bloqueados.txt" no perfil do usuário, que pode ser copiado previamente, em seguida abre no bloco de notas para edição. Assim que salvo, ele carrega as entradas no arquivo hosts. Eu chamei o script de Bloq.cmd, e sempre copio para a pasta system32, é claro.