Показать полную графическую версию : Автоматическое подключение/отключение сетевого подключения
DaFTSPiRiT
21-08-2010, 17:12
Здравствуйте. Для начала спасибо за ваш полезный и увлекательный форум!
Теперь к делу.
Есть желание прописать батник на периодичное (раз в 10 минут) автоматическое включение локального подключения "Fiber", затем проверка подключён ли кабель или нет (например пингуется адрес 192.168.0.1), в случае если подключён - оставить подключение "в покое" (т.е. он-лайн), в случае же если кабель не подключен, то отрубить подключение "Fiber" на 10 минут.
Anonymоus
21-08-2010, 18:27
Вот такой батничек получился, требует для своей работы devcon.exe от Microsoft и hs_delay.exe из набора утилит HS Packet от Акатова Алексея (нужные файлы во вложении)
@Echo Off
Rem Задержка между подключениями, если адрес не пингуется, в минутах
Set Delay=10
Rem Адрес, по которому будет проверяться наличие сети
Set RemoteHost=192.168.1.217
Set StartDate=[%date% - %time:~-0,8%]
Set /A Connected=0
Set /A Failed=0
Set /A _Delay=Delay*60000
:Loop
Ping -n 1 -w 1000 -l 512 %RemoteHost%>nul
If ErrorLevel 1 GoTo :Fail
Set /A Connected=Connected+1
Cls
Title Статистика
Echo Запущен: %StartDate%
Echo Удачных подключений: %Connected%
Echo Неудачных подключений: %Failed%
Call :Wait
Goto Loop
:Fail
Set /A Failed=Failed+1
Devcon.exe disable *NVNET*
Cls
Title Статистика
Echo Запущен: %StartDate%
Echo Удачных подключений: %Connected%
Echo Неудачных подключений: %Failed%
Call :Wait
Devcon.exe enable *NVNET*
Goto Loop
:Wait
hs_delay.exe %_Delay%
Exit /B
Идентификатор сетевой карты можно узнать все через тот же devcon.exe, допускается подстановка звездочек.
Anonymоus,
К чему такая сложность и применения доп. утилит resourse kit
Echo On & Chcp 866
set "cmdline=netsh interface set interface "Fiber""
Set STS=0
For /f "tokens=2" %%a in ('netsh interface show interface ^| Find /i "Fiber"') DO IF /i "%%a"=="подключен" (call :check) ^
else %cmdline% ENABLE && call :check
pause&goto :eof
:Check
Ping 192.168.0.1>nul
Ping 192.168.0.1>nul
If Errorlevel 1 (%cmdline% DISABLE & Echo Отключено) Else (Echo Активно)
Да бы не грузить систему, создать назначенное задание на запуск данного *.bat каждые 10 минут.
При опеределение параметров "с наив..." и от имени "системы" - запуск будет в скрытом режиме.
DaFTSPiRiT
21-08-2010, 19:05
не работает ничего! =(
мне ближе и более понятен второй вариант, но не срабатывает, подключение не включает!
сейчас пользуюсь такими батниками на переключение настроек подключения
1) netsh interface ip set address name="Fiber" source=static addr=192.168.0.2 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1
netsh interface ip set dns name="Fiber" source=static addr=192.168.0.1
2) netsh interface ip set address name="Fiber" source=static addr=89.28.82.129 mask=255.255.255.0 gateway=89.28.82.1 gwmetric=1
netsh interface ip set dns name="Fiber" source=static addr=87.248.160.5
в целом они мне понятны, ясно и видно, что к чему...работают на ура и до гениального просты...хотел бы что-то подобное и на подключение/отключение иметь... что-то типа
netsh interface ip set name="Fiber" = enabled
if Ping 192.168.0.1 >nul
тогда exit
if ping 192.168.0.1 не пингуется
тогда netsh interface ip set name="Fiber" = disabled
Я понимаю, что написал тут бред)) но это просто для пимера, как я себе представляю работу батника) (за исключение циклического повтора через каждые 10 минут)
netsh interface ip set name="Fiber" = enabled
if Ping 192.168.0.1 >nul
тогда exit
if ping 192.168.0.1 не пингуется
тогда netsh interface ip set name="Fiber" = disabled »
DaFTSPiRiT,
Вы некорректно записываете команду
давайте так:
ping 192.168.0.1 > nul
If Errorlevel 1 netsh interface ip set interface "Fiber" disabled
Да бы не грузить систему, создать назначенное задание на запуск данного *.bat каждые 10 минут.
При опеределение параметров "с наив..." и от имени "системы" - запуск будет в скрытом режиме. »
Уточните, пожалуйста, какие ошибки выдает код и версию Вашей ОС.
DaFTSPiRiT
21-08-2010, 19:28
http://xmages.net/storage/10/1/0/e/7/upload/5ffaebe9.jpg
DaFTSPiRiT,
У Вас проблемы с кодировкой, попробуйте в сценарии изменить кодовую страницу с 1251 на 866, а также попробуйте сохранить сам *.bat в кодировке OEM DOS (866). Это вы можете сделать в Akelpad или Word.
PS: приложил для Вас *.bat в кодировке OEM DOS
DaFTSPiRiT
21-08-2010, 20:02
Скачал батник net_En-dis_866.rar Отключил "Fiber" запустил батник, результат - Для продолжения нажмите любую клавишу. . ., при том, что вручную всё пингуется, интернет есть!
http://xmages.net/storage/10/1/0/f/7/upload/dad652e5.jpg
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.