Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переподключение до посинения.%)

Ответить
Настройки темы
CMD/BAT - [решено] Переподключение до посинения.%)

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: besuperhero
Дата: 18-07-2016
Может кто встречался с подобной практикой...
Дело в том, что мой 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
Как вы понимаете, ENTER - в атаке...)

Можно ли что-нибудь придумать с проверкой получаемого IP-адреса/подсети и в случае неудовлетворительного результата goto rasdial?

Отправлено: 03:04, 18-07-2016

 

Новый участник


Сообщения: 8
Благодарности: 3

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


dirigar, Спасибо за ответ, попробовал заранить скрипт, получил флуд:
"Достигнут уровень рекурсии, максимально возможный для команды SETLOCAL."
Неэффективная подсеть: 95.46.0.0/16
Эффективная подсеть: 31.135.0.0/16

Отправлено: 12:46, 21-07-2016 | #3


Новый участник


Сообщения: 8
Благодарности: 3

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


dirigar, Спасибо Вам большое! Все работает!

Немного подстроил под себя: увеличил количество циклов, убрал задержку между :rc (проходит нормально), добавил выполнение записи дополнительных маршрутов после успешного результата.

Еще раз, благодарю!

Отправлено: 14:48, 25-07-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переподключение до посинения.%)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход