|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переподключение до посинения.%) |
|
CMD/BAT - [решено] Переподключение до посинения.%)
|
Новый участник Сообщения: 20 |
Может кто встречался с подобной практикой...
Дело в том, что мой ISP имеет в пуле 2 диапазона IP-адресов, один из которых можно назвать менее эффективным (новая подсеть - блокировка со стороны ресурсов). С полноценными скриптами не сталкивался, поэтому меня хватило лишь на: @echo off :rc rasdial /DISCONNECT rasdial dial-name log psw netsh int ipv4 show addresses dial-name| findstr IP set /p choice="r - reconnect; e - exit: " if not defined choice goto rc if "%choice%"=="r" goto rc if "%choice%"=="e" exit Можно ли что-нибудь придумать с проверкой получаемого IP-адреса/подсети и в случае неудовлетворительного результата goto rasdial? |
|
Отправлено: 03:04, 18-07-2016 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Если подсеть правильного пула адресов у всех одинаковая, то должен подойти этот скрипт
@( setlocal enabledelayedexpansion echo off ) set "RightSubnet=192.168.123." set "eth=dial-name" :rc rasdial /DISCONNECT rasdial "!eth!" log psw echo.& echo wait 3 seconds & ping -w 3000 127.255.255.255 -n 1 > nul for /f "tokens=2" %%i in ( 'netsh int ipv4 show addresses "!eth!" ^| find /i "ip"' ) do set "ip=%%~i" echo Current ip = !ip! echo %ip% | find /i "!RightSubnet!" >nul && ( echo Success, the address is good ) || ( echo Warning, the aaddress does not match GOTO :rc ) pause (echo on endlocal exit /b %error% ) |
Отправлено: 06:36, 21-07-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать dirigar, Спасибо за ответ, попробовал заранить скрипт, получил флуд:
"Достигнут уровень рекурсии, максимально возможный для команды SETLOCAL." Неэффективная подсеть: 95.46.0.0/16 Эффективная подсеть: 31.135.0.0/16 |
Отправлено: 12:46, 21-07-2016 | #3 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать хм. зацикливание возможно. Поправил: 10 Раз пытается переподключиться
@( setlocal enabledelayedexpansion echo off ) set "RightSubnet=31.135." set "eth=dial-name" set "iter=0" set "cycles=10" :rc rasdial /DISCONNECT rasdial "!eth!" log psw echo.& echo wait 1 seconds & ping -w 3000 127.255.255.255 -n 1 > nul for /f "tokens=2" %%i in ( 'netsh int ipv4 show addresses "!eth!" ^| find /i "ip"' ) do set "ip=%%~i" echo Current ip = !ip! echo %ip% | find /i "!RightSubnet!" >nul && ( echo Success, the address is good ) || ( echo Warning, the aaddress does not match if !iter! LSS !cycles! set /a "iter+=1" & GOTO :rc ) echo. if !iter! GEQ !cycles! (echo Fault. ) else (echo Success) (echo on endlocal exit /b %error% ) |
Отправлено: 21:30, 21-07-2016 | #4 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать dirigar, Спасибо Вам большое! Все работает!
Немного подстроил под себя: увеличил количество циклов, убрал задержку между :rc (проходит нормально), добавил выполнение записи дополнительных маршрутов после успешного результата. Еще раз, благодарю! |
|
Отправлено: 14:48, 25-07-2016 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переподключение сетевого принтера | Quaker_75 | Скриптовые языки администрирования Windows | 6 | 16-02-2015 10:04 | |
Службы - [решено] Переподключение к файлсерверу | vgm1965 | Microsoft Windows 2000/XP | 3 | 20-02-2012 06:14 | |
Прочее - Автоматическое переподключение к Интернету | NewGothic | Сетевые технологии | 2 | 14-09-2011 13:04 | |
Интернет - постоянно требует переподключение.. | coltus | Microsoft Windows 2000/XP | 2 | 25-08-2010 16:21 | |
CMD/BAT - Переподключение ADSL | Serg2010 | Скриптовые языки администрирования Windows | 0 | 04-05-2010 20:22 |
|