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

argnist 28-03-2010 22:00 1379362

Перезапуск сетевого подключения по отсутствию пинга.
 
Из-за апериодических разрывов соединения по вероятной причине "скрутка кабеля неизвестно где бьеться об стену" моя семерка теряет соединение.
Это выглядит так: в трее значок соединения приобретает желтый треугольник, при этом, естественно, инета нету.
Проблема решается путем отключения сетевого подключения и последующего его включения вновь.
Но я не всегда могу присутствовать в момент разрыва.
Потому прошу товарищей, помогавших в темах:
http://forum.oszone.net/thread-167189.html
http://forum.oszone.net/thread-159473.html
помочь мне в написании скрипта (без разницы в какой среде, лишь бы под семеркой корректно работало), который бы делал следующее:
1. каждые 60 секунд пускал пинг на узел
2. если пинг проходил нормально возвращался в режим ожидания до следующего периода проверки.
3. если возвращаются таймауты в количестве, пускай 10, то делал тоже что и я, то есть рестарт сетевого подключения.

Естественно, хочется, чтоб был невидимым.

З.Ы. Опционально, чтоб 4 шагом было добавление записи о событии, если все-таки перезапуск соединения потребовался бы в текстовый файл, то есть ведение лога разрывов.

avolkov2009 29-03-2010 13:03 1379723

Одно время писал такой скриптик:
Код:

@echo off
set ext_loc=82.209.195.12
set int_loc=dell4100.barp.by
set ext_if=ByFly
set int_if=Local
echo Проверка внешнего интерфейса %ext_if%...
ping %ext_loc% | find /i "TTL="
if %errorlevel%==1 ( echo Перезагрузка внешнего интерфейса %ext_if%...
                    netsh interface set interface "%ext_if%" disable
                    sleep 3s
                    netsh interface set interface "%ext_if%" enable )
echo Готово.
echo.
echo Проверка внутреннего интерфейса %int_if%...
ping %int_loc% | find /i "TTL="
if %errorlevel%==1 ( echo Перезагрузка внутреннего интерфейса %int_if%...
                    netsh interface set interface "%int_if%" disable
                    sleep 3s
                    netsh interface set interface "%int_if%" enable )
echo Готово.
echo.
set ext_loc=
set int_loc=
set ext_if=
set int_if=

Если поможет - буду очень рад ;-)

argnist 29-03-2010 16:53 1379954

я вчера вспомнил про режим метрики на сетевой карте.
оказалось, что работал в автоматическом режиме.
переключил на 100 мбит полный дуплекс - за 16 часов разрывов еще не было. думаю, скрипт мне не пригодится уже.
но статус решено поставлю


Время: 22:36.

Время: 22:36.
© OSzone.net 2001-