Hallo,
Ich möchte einen ganzen IP-Raum durchpingen um zu sehen, welche PCs im Netzwerk sind und ob diese eingeschalten sind.
Spoiler anzeigen
#include <Inet.au3>
$ipRange = "192.168."
$iniName = "NetzINI.ini"
$timer = TimerInit()
TCPStartup()
$pcs=0
For $ip1=0 To 1
For $ip2=1 To 253
$ping = Ping($ipRange&$ip1&"."&$ip2, 10)
if ($ping > 0) Then
$pcs=$pcs+1
$IpToName = IniRead($iniName,"IpToName",$ipRange&$ip1&"."&$ip2,"x82")
$IpToNameSuccess = IniRead($iniName,"IpToNameSuccess",$ipRange&$ip1&"."&$ip2,"x82")
If ($IpToName=="x82" AND $IpToNameSuccess=="x82") Then
$name = _TCPIpToName($ipRange&$ip1&"."&$ip2)
IniWrite($iniName,"IpToName",$ipRange&$ip1&"."&$ip2,$name)
If ($name<>"") Then
IniWrite($iniName,"IpToNameSuccess",$ipRange&$ip1&"."&$ip2,1)
Else
IniWrite($iniName,"IpToNameSuccess",$ipRange&$ip1&"."&$ip2,0)
EndIf
EndIf
Else
IniDelete($iniName,"IpToName",$ipRange&$ip1&"."&$ip2)
IniDelete($iniName,"IpToNameSuccess",$ipRange&$ip1&"."&$ip2)
EndIf
Next
Next
IniWrite($iniName,"PCsOnline","Online",$pcs)
MsgBox(0,"","Es sind "&$pcs&" PCs online!"&@CRLF&"Zeit zum Scannen: "&(TimerDiff($timer)/1000)&" Sekunden")
Jetzt dauert aber die Zeile mit dem Ping drinnen (Z11) ewig und komme so für 100 IP-Adressen auf etwa 75 Sekunden. Dabei interesiert den Befehl mein Timeout von 10ms wenig...
Der _TCPIpToName() ist nicht daran schuld, den habe ich schon auskommentiert und dauert ebenso lange!
Vielleicht findest ja jemand einen Fehler oder kann mir einen Tipp geben!? - Danke