![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум 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 |
|