Weiß nicht ob ich hier richtig bin aber ein admin kann es ja immernoch in das passende verschieben. Also ich habe ein UDF geschrieben die ein Ziehl mehrmals anpingt und zusätzliche infos gibt, weil ich gemerkt habe das eibn Ping um den online status festzustellen einfach nix taugt.
Also einmach die UDF
[autoit]
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Matthias_199
Script Function: UDF für PING
#ce ----------------------------------------------------------------------------
#include-once
Global $info, $DNS_zu_IP ,$DNS ,$n ,$IP_DNS
Dim $IP [9] ,$Ping_Gesamt [9] ,$DNS [9] ,$IP [9] ,$info [9]
;===============================================================================
;
; Description: Ausgebauter Ping (_Ping)
; Syntax: Keine
; Parameter(s): Keine
; Requirement(s): Keine
; Return Value(s): Der Gesammte Ping ($Ping_Gesamt [$n]), Die DNS falls vorhanden ($DNS [$n]) , die IP ($IP [$n]) ,eine aussage über den status ($info [$n])
; Author(s): Matthias_199 <[email='Matthias_resenauer@yahoo.de'][/email]>
; Note(s): None
;
;===============================================================================
Func _Ping($n = "", $IP_DNS = "" )
$IP[$n] = $IP_DNS
$Step_1 = StringReplace ( $IP[$n], ".", "")
$Step_2 = Number ($Step_1)
If $Step_2 = 0 Then
TCPStartup()
$DNS_zu_IP = TCPNameToIP ($IP[$n])
If $DNS_zu_IP = "" Then
$IP[$n] = "Nicht verfügbar"
$DNS[$n] = "Nicht verfügbar"
Else
$DNS[$n] = $IP[$n]
$IP[$n] = $DNS_zu_IP
EndIf
TCPShutdown ()
Else
$DNS[$n] = "Nicht verfügbar"
EndIf
$Ping1 = Ping ($IP[$n],999)
$Error1 = @error
$Ping2 = Ping ($IP[$n],999)
$Error2 = @error
$Ping3 = Ping ($IP[$n],999)
$Error3 = @error
$Ping4 = Ping ($IP[$n],999)
$Error4 = @error
If $Ping1 > 0 Then
$Ping1_Teiler = "1"
Else
$Ping1_Teiler = "0"
EndIf
If $Ping2 > 0 Then
$Ping2_Teiler = "1"
Else
$Ping2_Teiler = "0"
EndIf
If $Ping3 > 0 Then
$Ping3_Teiler = "1"
Else
$Ping3_Teiler = "0"
EndIf
If $Ping4 > 0 Then
$Ping4_Teiler = "1"
Else
$Ping4_Teiler = "0"
EndIf
$Ping_Teiler_Gesamt = ($Ping1_Teiler + $Ping2_Teiler + $Ping3_Teiler + $Ping4_Teiler)
If $Ping_Teiler_Gesamt > 0 Then
$Ping_Gesamt[$n] = Round ((($Ping1 + $Ping2 + $Ping3 + $Ping4)/($Ping1_Teiler + $Ping2_Teiler + $Ping3_Teiler + $Ping4_Teiler)))
Else
$Ping_Gesamt[$n] = Round(($Ping1 + $Ping2 + $Ping3 + $Ping4))
EndIf
If $Error1 = $Error2 And $Error3 And $Error4 Then
Switch $Error1
Case $Error1 = 1
$info[$n] = "Der Computer ist offline"
Case $Error1 = 2
$info[$n] = "Der Computer ist nicht erreichbar"
Case $Error1 = 3
$info[$n] = "Falsche Adresse"
Case $Error1 = 4
$info[$n] = "Andere Fehler"
EndSwitch
Else
$info[$n] = "Mit Computer verbunden"
EndIf
EndFunc
;===============================================================================
;
; Description: Infos über _Ping bekommen(_GetPing)
; Syntax: Keine
; Parameter(s): Keine
; Requirement(s): Keine
; Return Value(s): Eine MsgBox mit allen Informationen
; Author(s): Matthias_199 <[email='Matthias_resenauer@yahoo.de'][/email]>
; Note(s): None
;
;===============================================================================
Func _GetPing ($n = "")
MsgBox(0,"Ping Stat","Ping : "&$Ping_Gesamt[$n]&@CRLF&"DNS : "&$DNS[$n]&@CRLF&"IP : "&$IP[$n]&@CRLF&"Meldung : "&$info[$n])
EndFunc
;===============================================================================
;
; Description: Die Infos wieder löschen(_ResetPing)
; Syntax: Keine
; Parameter(s): Keine
; Requirement(s): Keine
; Return Value(s): Löscht alle sachen und setzt mache sachen auf Nicht verfügbar
; Author(s): Matthias_199 <[email='Matthias_resenauer@yahoo.de'][/email]>
; Note(s): None
;
;===============================================================================
Func _ResetPing ($n = "")
$Ping_Gesamt[$n] = "0"
$DNS[$n] = "Nicht verfügbar"
$IP[$n] = "Nicht verfügbar"
$info[$n] = "Nicht verfügbar"
EndFunc
Und zum zweiten eine kurze erklärung als beispiel verbaut.
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Matthias_199
Script Function:
Hier wird euch als Beispiel aufgezeigt wie man das die _Ping UDF nutzt nutzt
#ce ----------------------------------------------------------------------------
#include <_Ping.au3> ; zu erst muss man die UDF includen um sie nutzen zu können
_Ping("0","google.de") ; die erste eingabe in dem fall "0" ist die Ping Zahl den mit der UDF ist es möglichn 9 PC oder server anzupingen und die zu speichern (0-8) darf der wert für die Ping zahl betragen.
; Die zweite eingabe hier "google.de" ist die DNS oder IP
_GetPing("0") ; in dem Fall ist "0" wieder die ping nummer aber sie ist nun dazu da die gespeicherten ergebnisse aufzurufen
_ResetPing("0") ; es wird wieder die ping nummer benötigt um die informationen wieder zu löschen
_GetPing("0") ; nur als beweiß das er sie gelöscht hat^^
Ich hoffe mal das die Doku auch soweit ok ist ist ja meine erste UDF^^
Wünsche Kritik verbesserungsvorschläge und lob sind alle erwünscht. ICh hänge die .au3s auch in den post an
MFG Matthias_199
edit bernd670: Darstellung von BBCodes aktiviert!