|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] При разрыве связи с определенным IP или HOST проиграть звук |
|
|
CMD/BAT - [решено] При разрыве связи с определенным IP или HOST проиграть звук
|
Новый участник Сообщения: 15 |
Помогите создать bat файл который бы следил за определенным соединением (может быть и не одно) и при изменении его статуса или вообще его отсутствия проигрывал звук
Более точнее наверно У меня задача что при нахождении отличия статуса определенного IP для каждого соединения этого IP и если есть отличия, от заданных, то проиграть звук, а если соединение отсутствует вообще, то опять же проиграть звук Пробую что-то типа: Цитата:
|
||
Отправлено: 02:08, 12-06-2010 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Вот нашел что-то похожее, но не могу догадаться как применить в моем батнике
wander84:необходимо проверить какой сейчас IP и сравнить его с тем что создался ранее (C:\92.15.67.21). И если: 1) эти IP одинаковы(равны), то ничего не делать. 2) эти IP неодинаковы(неравны), то выполнить bat-файл » вариант на базе предыдущего: @Echo Off Set $PATH=C: Set $BATN=C:\Batnik.CMD For /F "Tokens=1 Skip=1 Delims={,} " %%i In ('WMIC NICCONFIG Where Index^=1 Get IPAddress^|FindStr "."') Do Call :ParseIP %%i For /F %%i In ('DIR /A:-D/B "%$PATH%\*"^|FindStr /XRC:"[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"') Do Set %%i=X If Not Defined %$IPAddress% Call "%$BATN%" EXIT :ParseIP Set $IPAddress=%~1 GoTo :EOF |
Отправлено: 14:54, 13-06-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать neogara, как вариант через NetStat:
title Disconnect Sound set addr=IP Address set stat=ESTABLISHED :start ping -n 2 127.0.0.1 >nul for /f "delims=" %%i in ('netstat -n^|find /i "%addr%:"') do if /i not "%%i"=="%stat%" call :sound goto start :sound start "" /WAIT sound.wav goto :eof Разное - [решено] Запуск mp3 файла в режиме скрытого процесса P.S. на один IP может быть несколько соединений с разным состоянием |
Последний раз редактировалось amel27, 13-06-2010 в 16:20. Причина: очепятка Отправлено: 15:09, 13-06-2010 | #3 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать А в место ping -n 2 127.0.0.1 >nul паузу можно сделать через sleep?
И еще вопрос если соединение отсутствует будет воспроисводить звук Просто я так поня в команде for /f "tokens=4" %%i in ('netstat -n^ ищится статус, а далее он подставляется к адресу и если нет совпадения то что тогда???? |
Отправлено: 15:25, 13-06-2010 | #4 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Ставлю за ведомо отсутствуещее соединение, а звук так и не проигрывается
и еще я так понял что определяет переменную %%i как статус для find /i "%addr%:" это так? и еще вопрос что означает значек ^ здесь? |
|
Отправлено: 15:51, 13-06-2010 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата neogara:
Цитата neogara:
title Disconnect Sound set addr=IP address set stat=ESTABLISHED :start ping -n 1 127.0.0.1 >nul for /f "delims=" %%i in ('netstat -n^|findstr /IERC:" %addr%:[0-9][0-9 ]*%stat%"') do goto :start start "" /WAIT sound.wav goto start Цитата neogara:
|
|||
Отправлено: 16:26, 13-06-2010 | #6 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Спасибо за второй и первый пример
но что-то все равно не так, запускаю второй пример, а он мне звук выдает в любом случае ниже то что дожно было бы получиться |
Последний раз редактировалось neogara, 14-06-2010 в 03:00. Отправлено: 21:58, 13-06-2010 | #7 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата:
в netstat нужны только в общем внешние адреса Вот как должно получиться прошу помочь доработать до конца ПЛЗ (присутствует утилита sleep.exe и cmdow) title Disconnect Sound set addr=IP address set stat=ESTABLISHED :start_1 sleep 2 если в netstat присутствует IP address тогда идти на start_2 если нет идти на start_1 :start_2 Если в netstat присутствуют 2 или более одинаковых IP address, тогда нужно проверить stat для каждого из них, то как быть тогда? :start_3 sleep 2 Проверяем для каждого(!) IP address stat, если stat совпадает, то идти на stat_3, если не совпадает то идти на sound :sound поигрываем звук в скрытом проигрывателе cmdow.exe /RUN /hid %systemroot%\system32\mplay32.exe /play /close "sound.wav" sleep 5 выдать окошко с соощением echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Disconnekt %addr%"); >> %temp%\mes.js start %temp%\mes.js deltree /y %temp%\mes.js |
|
Последний раз редактировалось neogara, 14-06-2010 в 03:23. Причина: точная формулировка задачи Отправлено: 22:53, 13-06-2010 | #8 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Что-то лазию лазию по форуму, а подходящие более менее примеры найти не могу
|
Отправлено: 02:00, 14-06-2010 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата neogara:
title Disconnect Sound set addr=IP Address set stat=ESTABLISHED :start sleep 2 for /f "delims=" %%i in ('netstat -n^|find "%addr%:"^|find /V "%stat%"') do goto :sound goto start :sound cmdow.exe /RUN /hid %systemroot%\system32\mplay32.exe /play /close "sound.wav" sleep 5 msg * "Disconnect %addr%!" goto :eof |
|
Отправлено: 03:45, 14-06-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - восстановление связи при разрыве соединения | Костян-Ростов | Microsoft Windows 7 | 14 | 27-07-2016 12:56 | |
http/web - ограничения доступа к интернет сайтам, или открытие доступа только к определенным сай | reddenya | Сетевые технологии | 5 | 08-10-2009 10:21 | |
[решено] Ошибки видеокарты EAH 3650 при работе с определенным БП | dima3s | Непонятные проблемы с Железом | 5 | 18-09-2009 19:30 | |
Разное - [решено] Зависает компьютер при разрыве подключения по локальной сети | Cubbie | Microsoft Windows 2000/XP | 6 | 28-05-2009 17:32 | |
Как настроить 2003 терминал-сервер, чтобы сессия завершалась при разрыве | bzzz75 | Microsoft Windows NT/2000/2003 | 1 | 16-03-2006 17:47 |
|