Пакетное редактирование файла Hosts file - никакого эффекта?
Я сделал небольшой пакетный файл для редактирования файла hosts:
@echo off
title Edit Hosts
color 0A
echo Warning: Please ensure you are running this program as an administrator.
set /p admin=Type Y or N and hit enter to continue.
echo.
IF '%admin%'=='Y' goto :edithosts
IF '%admin%'=='N' exit
:edithosts
cls
set /p block=Enter website to block:
echo 127.0.0.1 %block% > C:WINDOWSsystem32driversetchosts
pause
Файл выполняет свою работу и добавляет все, что пользователь вводит в файл hosts в формате
127.0.0.1 сайт
Я проверил, были ли перечислены веб-сайты, и файл hosts обновляется правильно. Однако мой браузер все еще может подключиться. Это как-то связано с кэшированной копией сайта, или в коде есть изъян?
2 ответа:
В то время как изменения в файле
hosts
происходят немедленно в Windows в течение довольно долгого времени, приложения могут или не могут быть затронуты немедленно им. Веб-браузеры, в частности, обычно кэшируют DNS-запросы, чтобы сэкономить время для дальнейших запросов. Этот кэш легче всего очистить, просто перезапустив браузер. После того, как вы сделали это, и поиск DNS происходит, он должен забрать ваш измененный IP вместо этого.
В более новых версиях windows для защиты файла hosts в Защитнике Windows задан параметр по умолчанию. Если вы находитесь на W8 или выше, вам также может потребоваться открыть Defender и добавить файл hosts в список исключений.
Это на вкладке Настройки, выберите исключенные файлы и местоположения. Игнорируя красную стрелку, переназначил изображение из Бинга.