Erweiterung meines Ping Programmes

  • Hallo @ll

    erstmal einen guten morgen ^^

    Undzwar hab ich ein kleies Problem mit meinem Programm:

    [autoit]

    $Datei = "test.txt"
    While 1
    $status = PingList($Datei, 10)
    If $status = 1 Then
    Shutdown(1)
    Exit
    EndIf
    Sleep(10)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func PingList($liste, $wait = 100)
    Local $a=FileOpen($liste,0),$b=FileRead($a)
    FileClose($a)
    $a = StringStripCR($b)
    $b = StringSplit($a,@LF)
    $a = 1
    If IsArray($b) = False Then Return -1
    For $i=1 To $b[0]
    If Ping($b[$i],$wait) Then $a = 0
    Next
    If $a = 1 Then Return 1
    Return 0
    EndFunc

    [/autoit]

    Man gibt in eine TxT datei alle Ips ein, welche das Programm anpingen soll solang bis alle off sind, dann fährt er runter... Das Programm funzt auch, nur bei meinem Servern ist meinst der erste Ping eine Zeitüberschreitung, d.h. wenn ich die Ips eingebe fährt der PC gleich runter =(

    Wie schaff ich es nun, dass das Programm weiß: Ah der erste Ping ist Zeit überschreitung aber die anderen nicht, mache also weiter ... und fahre nicht runter.

    Vielen lieben DANK

    Eldas

    (p.s. Eine log Funktion wollte ich auch noch irgendwie rein machen, z.b. welche Ips gingen, welche nicht gingen, vllt wann er runtergefahren ist etc .. Aber keine Ahung wie ich das machen soll xD)

  • Hier, allerdings ungetestet:

    Spoiler anzeigen
    [autoit]

    $Datei = "test.txt"
    While 1
    $status = PingList($Datei, 10)
    If $status = 1 Then
    Shutdown(1)
    Exit
    EndIf
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func PingList($liste, $wait = 100)
    Local $a = FileOpen($liste, 0), $b = FileRead($a)
    FileClose($a)
    $a = StringStripCR($b)
    $b = StringSplit($a, @LF)
    $a = 1
    If IsArray($b) = False Then Return -1
    For $i = 1 To $b[0]
    $i = 0
    While $i <= 3
    If Ping($b[$i], $wait) Then
    $a = 0
    Else
    $a = 1
    EndIf
    $i = $i + 1
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Next
    If $a = 1 Then Return 1
    Return 0
    EndFunc ;==>PingList

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ups sorry, dummer kleiner Fehler. So solltes es gehen:

    Spoiler anzeigen
    [autoit]

    $Datei = "test.txt"
    While 1
    $status = PingList($Datei, 10)
    If $status = 1 Then
    Shutdown(1)
    Exit
    EndIf
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func PingList($liste, $wait = 100)
    Local $a = FileOpen($liste, 0), $b = FileRead($a)
    FileClose($a)
    $a = StringStripCR($b)
    $b = StringSplit($a, @LF)
    $a = 1
    If IsArray($b) = False Then Return -1
    For $i = 1 To $b[0]
    $i = 0
    While $o <= 3
    If Ping($b[$i], $wait) = 0 Then
    $a = 0
    Else
    $a = 1
    EndIf
    $o = $o + 1
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Next
    If $a = 1 Then Return 1
    Return 0
    EndFunc ;==>PingList

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Also jetzt stellst dich aber echt an. Den kleine Fehler sollte echt jeder sehen:

    Spoiler anzeigen
    [autoit]

    $Datei = "test.txt"
    While 1
    $status = PingList($Datei, 10)
    If $status = 1 Then
    Shutdown(1)
    Exit
    EndIf
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func PingList($liste, $wait = 100)
    Local $a = FileOpen($liste, 0), $b = FileRead($a)
    FileClose($a)
    $a = StringStripCR($b)
    $b = StringSplit($a, @LF)
    $a = 1
    If IsArray($b) = False Then Return -1
    For $i = 1 To $b[0]
    $o = 0
    While $o <= 3
    If Ping($b[$i], $wait) = 0 Then
    $a = 0
    Else
    $a = 1
    EndIf
    $o = $o + 1
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Next
    If $a = 1 Then Return 1
    Return 0
    EndFunc ;==>PingList

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.