@echo off
setlocal
set LOGFILE=D:\internet_check.log
:check_connection
echo %date% %time% Проверка интернет-соединения >> %LOGFILE%
ping -n 1 8.8.8.8 >nul
if %errorlevel% == 0 (
echo %date% %time% Интернет-соединение доступно. >> %LOGFILE%
) else (
echo %date% %time% Интернет-соединение отсутствует. Проверяю доступность роутера... >> %LOGFILE%
ping -n 1 10.0.0.1 >nul
if %errorlevel% == 0 (
echo %date% %time% Роутер доступен, но интернет-соединение отсутствует. >> %LOGFILE%
) else (
echo %date% %time% Роутер недоступен. Перезапускаю сессию... >> %LOGFILE%
)
echo %date% %time% Выполняю команды ipconfig /release, /flushdns, /renew... >> %LOGFILE%
ipconfig /release >> %LOGFILE% 2>&1
ipconfig /flushdns >> %LOGFILE% 2>&1
ipconfig /renew >> %LOGFILE% 2>&1
echo %date% %time% Команды выполнены. >> %LOGFILE%
)
Объяснение:
-
Переменная
LOGFILE
:- Устанавливает путь к лог-файлу на диске D:.
-
Проверка интернет-соединения:
- Команда
ping -n 1 8.8.8.8 >nul
проверяет доступность удаленного хоста (Google DNS сервер 8.8.8.8). Результат команды перенаправляется вnul
, чтобы не отображать вывод на экране. - Если
ping
успешен, переменная%errorlevel%
будет равна 0, и скрипт запишет сообщение о доступности интернет-соединения в лог-файл. - Если
ping
неуспешен, переменная%errorlevel%
будет отлична от 0, и скрипт перейдет к проверке доступности роутера.
- Команда
-
Проверка доступности роутера:
- Команда
ping -n 1 10.0.0.1 >nul
проверяет доступность роутера по адресу 10.0.0.1. Результат команды перенаправляется вnul
, чтобы не отображать вывод на экране. - Если
ping
успешен, переменная%errorlevel%
будет равна 0, и скрипт запишет сообщение о доступности роутера в лог-файл. - Если
ping
неуспешен, переменная%errorlevel%
будет отлична от 0, и скрипт запишет сообщение о недоступности роутера в лог-файл.
- Команда
-
Выполнение команд
ipconfig
:- Если интернет-соединение отсутствует или роутер недоступен, скрипт выполняет команды
ipconfig /release
,ipconfig /flushdns
иipconfig /renew
, записывая их вывод в лог-файл.
- Если интернет-соединение отсутствует или роутер недоступен, скрипт выполняет команды