Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Пинг группы ПК по списку IP (http://forum.oszone.net/showthread.php?t=258944)

Serg2010 19-04-2013 07:17 2135566

Пинг группы ПК по списку IP
 
Добрый день!

Как имея список IP-адресов (на форме элемент "список" заполнен ими) иметь информацию (подсветкой другим цветом) какие включены а какие нет ПК? Прога моя используется для удаленного управления по типу Radmin. Прежде чем "ломиться" на другой комп, лучше бы видеть его активность ... Спасибо

Iska 19-04-2013 09:29 2135616

Что именно непонятно?

Serg2010 19-04-2013 19:36 2136050

Начнем с того, что какой способ проверки избрать: пинг или ещё есть какие методы. Ну и сам скриптик бы ...

Будет механизм проверки активности компа к списку на форме и выделению строчки в нём сам прикручу ...

Iska 20-04-2013 06:37 2136202

Serg2010, пинг. Для скорости опроса рекомендую пользовать асинхронный Wbem — запросы выполняются асинхронно, обрабатываются квазисинхронно; примеры на WSH: vbscript: асинхронная обработка множественных запросов WMI (Страница 1) — Windows Script Host, HTA (VBScript, JScript) — Серый форум.

Serg2010 21-04-2013 19:30 2137149

мдя... я в аутоит еле-еле ... а тут

Мм, а что если я использую простой до безобразия способ: сделаю на каждый комп скрипт, чтобы при загрузке ставил 1 в какой-нибудь текстовый ини-файл в шаре на сервере. А при выключении писал туда 0. Ну а моему скрипту достаточно будет "пробежаться" по этому текстовому файлу чтобы сразу картина была ясна. Другими словами каждый комп обязан регистрироваться при включении и выключении в некотором журнале ... Ну а моя прога просто с периодичность какую задам считывает их состояние оттуда. В итоге я не буду тыкаться на тот компьютер который выключен, что и требовалось доказать ...

Iska 21-04-2013 23:18 2137304

Serg2010, это крайне неудобное решение:
читать дальше »
связь может прерваться в любой момент, машина может выключаться некорректно и т.п. Наконец, подобная система давно существует: Vadims Podans' blog - Сетевое окружение (и особливо по ссылкам на KB внутри статьи). Именно из-за её ограничений и возникает потребность иметь точную картину, которую может дать только сиюминутный опрос машин.


Держите (я упростил приведённый пример для конкретного случая):
читать дальше »
Код:

AutoItSetOption("MustDeclareVars", 1)

Local $aComputers = StringSplit("google.com,www.ya.ru,localhost,test", ",", 2)

Local $oSWbemServicesEx = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\Root\CIMV2")
Local $oSWbemSink      = ObjCreate("WbemScripting.SWbemSink")
Local $oSinkObject      = ObjEvent($oSWbemSink, "Sink_")

Local $lCount = UBound($aComputers)

For $sComputer In $aComputers
    $oSWbemServicesEx.ExecQueryAsync($oSWbemSink, "SELECT * FROM Win32_PingStatus WHERE ADDRESS = '" & $sComputer & "'")
Next

Do
    Sleep(100)
Until $lCount = 0

$oSWbemSink.Cancel

$oSinkObject      = 0
$oSWbemSink      = 0
$oSWbemServicesEx = 0

Exit(0)
;=============================================================================

;=============================================================================
Func Sink_OnObjectReady($oWbemObject, $oWbemAsyncContext)
    If IsNumber($oWbemObject.StatusCode) Then
        If $oWbemObject.StatusCode = 0 Then
            ConsoleWrite($oWbemObject.Address & @Tab & "On" & @Tab & "Response time: " & $oWbemObject.ResponseTime & " ms" & @CRLF)
        Else
            ConsoleWrite($oWbemObject.Address & @Tab & "Off" & @Tab & "Status code: " & $oWbemObject.StatusCode & @CRLF)
        EndIf
    Else
        ConsoleWrite($oWbemObject.Address & @Tab & "Not found" & @CRLF)
    EndIf
EndFunc
;=============================================================================

;=============================================================================
Func Sink_OnCompleted($iHResult, $oWbemErrorObject, $oWbemAsyncContext)
    $lCount = $lCount - 1
EndFunc
;=============================================================================


Возможный результат:
читать дальше »
Код:

>Running:(3.3.6.1):C:\Program Files\AutoIt3\autoit3.exe "E:\Песочница\0119\0002.au3"   
localhost        On        Response time: 0 ms
www.ya.ru        On        Response time: 573 ms
google.com        On        Response time: 528 ms
test        Not found
+>23:15:36 AutoIT3.exe ended.rc:0
>Exit code: 0    Time: 13.066


Теперь прикручивайте:
Цитата:

Цитата Serg2010
Будет механизм проверки активности компа к списку на форме и выделению строчки в нём сам прикручу ... »


AZJIO 22-04-2013 01:17 2137367

Serg2010, http://u.to/Atly


Время: 00:41.

Время: 00:41.
© OSzone.net 2001-