Я сделал небольшой командный файл для редактирования файла 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:\WINDOWS\system32\drivers\etc\hosts

pause

Файл выполняет свою работу и добавляет все, что вводит пользователь, в файл hosts в формате

127.0.0.1 сайт

Я проверил, указаны ли веб-сайты в списке и правильно ли обновляется файл hosts. Однако мой браузер все еще может подключиться. Это как-то связано с кешированной копией сайта или в коде есть недоработка?

2
Max Hallam 26 Дек 2013 в 02:58

2 ответа

Лучший ответ

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

3
poke 25 Дек 2013 в 23:04

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

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

enter image description here

0
Knuckle-Dragger 26 Дек 2013 в 04:33