@echo off
setlocal enabledelayedexpansion

:: Проверка прав администратора
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo ========================================
    echo   ОШИБКА: Требуются права администратора
    echo ========================================
    echo.
    echo Пожалуйста, запустите скрипт от имени администратора
    pause
    exit /b 1
)

:: Настройки
set "HOSTS_FILE=%WINDIR%\System32\drivers\etc\hosts"
set "BACKUP_FILE=%WINDIR%\System32\drivers\etc\hosts.back"
set "TEMP_HOSTS=%TMP%\hosts_new"

echo ========================================
echo   Обновление файла hosts
echo ========================================
echo.

:: Шаг 1: Создание резервной копии
echo [1/4] Создание резервной копии текущего hosts...

if exist "%BACKUP_FILE%" del /q /f "%BACKUP_FILE%" >nul 2>&1
copy /y "%HOSTS_FILE%" "%BACKUP_FILE%" >nul 2>&1
if %errorlevel% neq 0 (
    echo [ОШИБКА] Не удалось создать резервную копию!
    pause
    exit /b 1
)
echo [OK] Резервная копия создана: %BACKUP_FILE%

:: Шаг 2: Создание нового файла hosts
echo.
echo [2/4] Создание нового файла hosts...

(
    echo # Copyright ^(c^) Microsoft Corporation
    echo # Custom hosts file - Updated: %DATE% %TIME%
    echo.
    echo # Localhost
    echo 127.0.0.1       localhost
    echo ::1             localhost
    echo.
    echo # Custom blocked sites
    echo 0.0.0.0         example.com
    echo 0.0.0.0         ads.example.com
    echo 0.0.0.0         tracker.example.com
    echo 0.0.0.0         doubleclick.net
    echo 0.0.0.0         googleadservices.com
    echo.
    echo # Local network entries
    echo 192.168.10.25   nexus.altsoft.pro
    echo 192.168.10.14   registry.altsoft.pro
    echo 192.168.10.32   portainer.altsoft.pro
) > "%TEMP_HOSTS%"

echo [OK] Новый файл hosts создан

:: Шаг 3: Замена системного файла
echo.
echo [3/4] Замена системного файла hosts...

copy /y "%TEMP_HOSTS%" "%HOSTS_FILE%" >nul 2>&1
if %errorlevel% neq 0 (
    echo [ОШИБКА] Не удалось заменить файл hosts!
    pause
    exit /b 1
)
echo [OK] Файл hosts успешно заменен

:: Шаг 4: Очистка DNS-кэша и временных файлов
echo.
echo [4/4] Очистка DNS-кэша...

ipconfig /flushdns >nul 2>&1
if %errorlevel% neq 0 (
    echo [ПРЕДУПРЕЖДЕНИЕ] Не удалось очистить DNS-кэш
) else (
    echo [OK] DNS-кэш успешно очищен
)

if exist "%TEMP_HOSTS%" del /q /f "%TEMP_HOSTS%" >nul 2>&1

echo.
echo ========================================
echo   ГОТОВО!
echo ========================================
echo.
echo Резервная копия: %BACKUP_FILE%
echo.
echo Проверить файл: notepad %HOSTS_FILE%
echo.
exit /b 0



