Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проверка на подключение и подключение (http://forum.oszone.net/showthread.php?t=272814)

vovandolg@vk 26-11-2013 11:49 2261766

Проверка на подключение и подключение
 
Здравствуйте, хотелось бы спросить, как составить батник чтобы он выполнял алгоритм :help: :

1) Проверка подключена ли сеть: Beeline
-----
2)Если не подключена
- Пробовать подключить сеть: Beeline
- После подключения батник офф
-----
3) Если подключена - батник офф.
_______
Заранее спасибо!

Elven 26-11-2013 14:54 2261863

если подключение так и называется то можно так:
Код:

netsh interface ipv4 show interfaces | find "Beeline" | find "disconnected"
goto %errorlevel%
:1
echo "Beeline подключен"
exit /b
:0
echo "Beeline отключен, подключаем"
netsh interface set interface name="Beeline" admin=ENABLED
echo "Beeline подключен"
exit /b


oleh19 26-11-2013 20:14 2262025

Elven, можеш прокоментировать цитату
( netsh interface ipv4 show interfaces | find "Beeline" | find "disconnected"
goto %errorlevel%)

Elven 27-11-2013 13:23 2262369

netsh interface ipv4 show interfaces //просматриваем все доступные интерфейсы
| //передаем по конвейеру на следующую команду
find "Beeline" //находим строку содержащую "Beeline"
| //передаем по конвейеру на следующую команду
find "disconnected" //находим строку содержащую "disconnected"
goto %errorlevel% //безусловный переход к метке. если статус подключения - "connected", то find вернет ошибку придав значение errorlevel=1, значит переходим к :1, если нашел значит errorlevel=0, переходим к :0

в данном случае errorlevel от find возвращает только эти два значения, так что усложнять смысла не вижу.

oleh19 27-11-2013 16:40 2262535

Elven, Савсибо

vovandolg@vk 27-11-2013 17:58 2262606

Цитата:

Цитата Elven
если подключение так и называется то можно так: »

Код как бы интересный, но у меня при отключенной сети батник её не подключает, я пробовал вручную:
Код:

@rasdial Beeline beeline beeline
Exit

при этом подключался к сети, можно ли как то влепить rasdial в твой код?

Elven 27-11-2013 18:22 2262621

по идее - да, вставишь вызов после :0 и все должно работать, соответственно строчку netsh interface set interface name="Beeline" admin=ENABLED удаляешь.

vovandolg@vk 27-11-2013 19:45 2262670

Цитата:

Цитата Elven
по идее - да, вставишь вызов после :0 и все должно работать, соответственно строчку netsh interface set interface name="Beeline" admin=ENABLED удаляешь. »

При отключенном интернете батник пишет что соединение билайн подключено, где то ошибка...

Elven 28-11-2013 15:52 2263147

так ты писал что нужно проверять подключена ли сеть, а не есть ли интернет. Определись таки что именно нужно. И к слову, если проверять пингами у билайна ICMP не заблочен часом? А то я как бы из Беларуси, даже приблизительно не представляю как там у вас что.

vovandolg@vk 28-11-2013 23:08 2263388

Нуу подключение у меня готовое есть к интернету, блин ну нуб ещё в этой области, я просто думал батник слепить на проверку подключения к инету, а то вырубается заразо :unsure:

DEDI 03-12-2013 00:47 2265831

vovandolg@vk, если еще актуально, вот мой вариант =)

пытается подключится, если не получается пробует еще 10 раз, сам закрывается с через 5 секунд.

Переменные:
CN - Имя подключения
RC - количество попыток подключения
USER - Логин
PASS - пароль

Код:

@echo off
title=Auto Connect
set "CN=beeline"
set "RC=10"
set "USER=beelineuser"
set "PASS=beelinepass"
:connect
color 70
if "%RC%" == "0" goto noconnected
set /a "RC=RC - 1"
cls
echo.
rasdial.exe "%CN%" "%USER%" "%PASS%"
set "rasdialer=%errorlevel%"
if "%rasdialer%" == "0" goto connected
goto connect

:connected
color 0A
cls
echo.
echo  %CN% connected =)
echo.
timeout 5
exit

:noconnected
color 0C
cls
echo.
echo  %CN% NOT connected =(
echo.
timeout 5
exit

Прокомментированный код:
читать дальше »

@echo off
title=Auto Connect
:задаю переменные
set "CN=beeline"
set "RC=10"
set "USER=beelineuser"
set "PASS=beelinepass"
:точка входа к подключению
:connect
color 70
:проверяю сколько было сделано попыток подключения, если равно 0, значит не удалось подключится, отправка в точку noconnected
if "%RC%" == "0" goto noconnected
:отнимаем одну попытку подключения
set /a "RC=RC - 1"
: очищаю окно
cls
echo.
:выполняю подключение по заданным переменным
rasdial.exe "%CN%" "%USER%" "%PASS%"
:переменная уровня ошибок
set "rasdialer=%errorlevel%"
:если rasdial вернул 0 значит подключение успешно создано, отправка в точку connected
if "%rasdialer%" == "0" goto connected
:если rasdial вернул не 0, пытаюсь переподключится, отправка в точку connect
goto connect

:сообщаю что подключение работает
:connected
color 0A
cls
echo.
echo %CN% connected =)
echo.
:задержка на 5-ть секунд
timeout 5
exit

:сообщаю что подключение не работает
:noconnected
color 0C
cls
echo.
echo %CN% NOT connected =(
echo.
:задержка на 5-ть секунд
timeout 5
exit

vovandolg@vk 21-12-2013 17:22 2276249

DEDI, братан ты просто агонь, превеликое тебе спасибо! :clapping:


Время: 00:21.

Время: 00:21.
© OSzone.net 2001-