Войти

Показать полную графическую версию : [решено] Проверка на подключение и подключение


vovandolg@vk
26-11-2013, 11:49
Здравствуйте, хотелось бы спросить, как составить батник чтобы он выполнял алгоритм :help: :

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

Elven
26-11-2013, 14:54
если подключение так и называется то можно так:

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

Elven
27-11-2013, 13:23
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
Elven, Савсибо

vovandolg@vk
27-11-2013, 17:58
если подключение так и называется то можно так: »
Код как бы интересный, но у меня при отключенной сети батник её не подключает, я пробовал вручную:

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

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

vovandolg@vk
27-11-2013, 19:45
по идее - да, вставишь вызов после :0 и все должно работать, соответственно строчку netsh interface set interface name="Beeline" admin=ENABLED удаляешь. »
При отключенном интернете батник пишет что соединение билайн подключено, где то ошибка...

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

vovandolg@vk
28-11-2013, 23:08
Нуу подключение у меня готовое есть к интернету, блин ну нуб ещё в этой области, я просто думал батник слепить на проверку подключения к инету, а то вырубается заразо :unsure:

DEDI
03-12-2013, 00:47
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
DEDI, братан ты просто агонь, превеликое тебе спасибо! :clapping:




© OSzone.net 2001-2012