Компьютерный форум 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=183519)

DaFTSPiRiT 21-08-2010 17:12 1478691

Автоматическое подключение/отключение сетевого подключения
 
Здравствуйте. Для начала спасибо за ваш полезный и увлекательный форум!
Теперь к делу.
Есть желание прописать батник на периодичное (раз в 10 минут) автоматическое включение локального подключения "Fiber", затем проверка подключён ли кабель или нет (например пингуется адрес 192.168.0.1), в случае если подключён - оставить подключение "в покое" (т.е. он-лайн), в случае же если кабель не подключен, то отрубить подключение "Fiber" на 10 минут.

Anonymоus 21-08-2010 18:27 1478744

Вложений: 1
Вот такой батничек получился, требует для своей работы 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, допускается подстановка звездочек.

deepred 21-08-2010 18:49 1478756

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 1478761

не работает ничего! =(
мне ближе и более понятен второй вариант, но не срабатывает, подключение не включает!

сейчас пользуюсь такими батниками на переключение настроек подключения

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 минут)

deepred 21-08-2010 19:17 1478766

Цитата:

Цитата DaFTSPiRiT
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

Цитата:

Цитата deepred
Да бы не грузить систему, создать назначенное задание на запуск данного *.bat каждые 10 минут.
При опеределение параметров "с наив..." и от имени "системы" - запуск будет в скрытом режиме. »


Уточните, пожалуйста, какие ошибки выдает код и версию Вашей ОС.

DaFTSPiRiT 21-08-2010 19:28 1478770

http://xmages.net/storage/10/1/0/e/7...d/5ffaebe9.jpg

deepred 21-08-2010 19:36 1478786

DaFTSPiRiT,

У Вас проблемы с кодировкой, попробуйте в сценарии изменить кодовую страницу с 1251 на 866, а также попробуйте сохранить сам *.bat в кодировке OEM DOS (866). Это вы можете сделать в Akelpad или Word.

PS: приложил для Вас *.bat в кодировке OEM DOS

DaFTSPiRiT 21-08-2010 20:02 1478811

Скачал батник net_En-dis_866.rar Отключил "Fiber" запустил батник, результат - Для продолжения нажмите любую клавишу. . ., при том, что вручную всё пингуется, интернет есть!

http://xmages.net/storage/10/1/0/f/7...d/dad652e5.jpg


Время: 11:21.

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