Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Интересный скрипт: групповой ping


Автор: ARTlink 23.5.2012, 13:54
Доброго времени суток, уважаемые форумчане! Я чайник в программировании, в детстве увлекался, но все забыл.
По долгу работы требуется:
  • 1. Загнать список адресов в массив из файла
  • 2. По очереди пропинговать каждый
  • 3. Недоступные адреса записать в лог с датой и временем пинга
  • 4. Выкинуть окно (ошибочное) с кнопкой ОК и инфой по недоступному адресу. один адрес-одно окно
  • 5. Зациклить процесс с задержкой 15 минут.
Нашел материал, но как собрать не вспомню:

[*]1. Загнать список адресов в массив из файла

Код

Set FSO = CreateObject("Scripting.FileSystemObject")
Dim arrMass()
Dim pathToFile
pathToFile = "machines.txt"

Sub GetMachines()
    On Error Resume Next
    Dim strText
    Set objTextFile = FSO.OpenTextFile(pathToFile, 1, True)
    i = 0
    Do While objTextFile1.AtEndOfStream <> True
        strMachine = objTextFile.ReadLine
        ReDim Preserve arrMass(i + 1)
        arrMass(i) = strText
        i = i + 1
    Loop
    ReDim Preserve arrMass(i - 1)
    i = 0
    objTextFile.Close
End Sub


[*]2. Поочередной пинг IP адресов. (Здесь ведется полный лог, и отображаются сообщения о любом результате)

Код

For Each strMachine In arrMass
    Ping(strMachine)
Next

Function Ping(machineName)
    On Error Resume Next
    Dim objStatus
    Dim objPing

    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
        ExecQuery("select * from Win32_PingStatus where address = '"_
        & machineName & "'")
    For Each objStatus In objPing
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
        ' Записать в файл информацию
        Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " доступен"
            LogFile.Close

            'MsgBox compip & " пингуется :) "
    Else
        ' Записать в файл информацию
        Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " ytдоступен"
            LogFile.Close

            'MsgBox compip & " пингуется :) "    
    
        End If
    Next
End Function
Все вместе не работает. Под руками кроме блокнота нет ничего, проверить ошибки негде. 
Прошу проверить и по возможности указать на недочеты, и пояснить, как исправить сию ситуацию.
Буду очень благодарен, так, как облегчится жизнь значительно)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)