Пакетное редактирование файла 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 2

2 ответа:

В то время как изменения в файле hosts происходят немедленно в Windows в течение довольно долгого времени, приложения могут или не могут быть затронуты немедленно им. Веб-браузеры, в частности, обычно кэшируют DNS-запросы, чтобы сэкономить время для дальнейших запросов. Этот кэш легче всего очистить, просто перезапустив браузер. После того, как вы сделали это, и поиск DNS происходит, он должен забрать ваш измененный IP вместо этого.

В более новых версиях windows для защиты файла hosts в Защитнике Windows задан параметр по умолчанию. Если вы находитесь на W8 или выше, вам также может потребоваться открыть Defender и добавить файл hosts в список исключений.

Это на вкладке Настройки, выберите исключенные файлы и местоположения. Игнорируя красную стрелку, переназначил изображение из Бинга.

Введите описание изображения здесь