Тема: Connect Checker
Показать сообщение отдельно
Старый 08.11.2011, 00:51     # 2
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 382

Borland - Гад и сволочь
IMHO.ws Connect Checker 1.0

MarkXIII, чтобы "пинать извне" - нужно иметь какой-то порт открытым наружу (и проброшенным на роутере вовнутрь).
Дальше на этот порт вешается (к примеру) веб-сервис с каким-нить небольшим файликом (пары байт в принципе достаточно).
Дальше с внешнего (по отношению ко всей конструкции) компа обычным GNU Wget по шедулеру тягаешь тот самый файлик, отписываешь в лог-файл время и результат (удачно/неудачно), удаляешь файлик чтоб не мешал, при необходимости выполняешь какие-то ещё действия.
Как вариант - "какой-то сервис" может висеть и на роутере.
Как ещё один вариант - логи может вести и веб-сервер.
Как ещё один вариант - wget может работать изнутри (в т.ч. и на роутере), а файлик качать с внешнего сервиса (www.microsoft.com:80/index.html весит 415 байт192кбайт).
Если изнутри на машине стоит XP (на других Win не сработает) - можно вместо wget использовать встроенный netsh (netsh diag connect iphost www.microsoft.com 80). В отличие от wget - для netsh не нужен никакой файлик, проверяется возможность соединения и только.

<Добавлено утром>
Собственно, вариант "комп с Win за роутером, сервер снаружи"
checker.cmd
Код:
set REMOTEURL=ftp://ftp.mozilla.org/index.html
set WORKFOLDER=c:\checker
set LOGFILE=%WORKFOLDER%\checker.log
set WGETPROG=%WORKFOLDER%\wget.exe


%WGETPROG% --output-document=%WORKFOLDER%\foo.html %REMOTEURL% && call :PASSED ||call :FAILED
goto :EOF

:PASSED
REM есть коннект
1>>%LOGFILE% echo Passed at %DATE% %TIME%
del /q %WORKFOLDER%\foo.html
goto :EOF

:FAILED
REM нет коннекта
REM сюда можно добавить команду переинициализации соединения
1>>%LOGFILE% echo Epic fail at %DATE% %TIME%
goto :EOF
В "Назначенные задания" добавлять командой (предполагая, что всё хозяйство лежит в папке c:\Checker)
Код:
schtasks /create /RU SYSTEM /SC MINUTE /MO 15 /ST 00:00:01 /TR "c:\checker\checker.cmd" /TN "IMHO.ws Connect Checker"
Проверено, работает.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий


Последний раз редактировалось Borland; 08.11.2011 в 10:06. Причина: Добавлен пример
Borland вне форума