Supportnet / Forum / NW-Sonstiges
Mehrere Hosts gleichzeitig anpingen
Frage
Hallo,
ich mich freuen wenn mir jemand einen Tipp geben könnte wie ich mehrere Hosts gleichzeitig anpingen könnte. Wie funktioniert das bei dem DOS-Befehl "PING" (evtl. Hostliste)? Gibt's da vielleicht auch ein Tool, dass grafisch alle Hosts auf einmal anzeigt?
Danke für eure Zuschriften!
Antwort 1 von Undertaker
Hi,
ich behelfe mir mit einem Script, das alle paar Minuten über den Taskmanager ausgeführt wird und das Ergebnis in eine Textdatei schreibt.
Wen Dir das reicht, poste ich es Dir...
Gruß
Undertaker
ich behelfe mir mit einem Script, das alle paar Minuten über den Taskmanager ausgeführt wird und das Ergebnis in eine Textdatei schreibt.
Wen Dir das reicht, poste ich es Dir...
Gruß
Undertaker
Antwort 2 von [Rocco]
@Undertaler:
Ohja das ist auch nicht schlecht. Wenn es dich nicht stört, dann könntest du mir deine Lösung mal posten. Ich suche einfach eine Möglichkeit ein paar Server im Auge zu behalten, ohne dass ich immer alle einzeln anpingen muss.
Danke!
Ohja das ist auch nicht schlecht. Wenn es dich nicht stört, dann könntest du mir deine Lösung mal posten. Ich suche einfach eine Möglichkeit ein paar Server im Auge zu behalten, ohne dass ich immer alle einzeln anpingen muss.
Danke!
Antwort 3 von Undertaker
Hi,
ScanSubnetz.cmd
ScanSubnetz1.cmd
Das Programm SETWORD kannst Du Dir selber basteln
oder ich schicke es Dir...
Gruß
Undertaker
ScanSubnetz.cmd
@ECHO OFF
:: *** Date und Time ***
DATE /T | SETWORD 2 >TMP.cmd
CALL TMP.cmd timestamp
TIME /T | SETWORD 1 >TMP.cmd
CALL TMP.cmd zeit
DEL TMP.cmd
ECHO %zeit% | findstr /R "..:.." >NUL
IF %errorlevel%==1 SET zeit=0%zeit%
SET timestamp=%timestamp% %zeit%
:: *** Netz scannen ***
SET result=
SET resultNB=
:: FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]
FOR /L %%a IN (1,1,20) DO CALL ScanSubnetz1.cmd 192.168.100. %%a
:: *** Vorherigen Status laden ***
CALL ScanSubnetz2.cmd>NUL
:: *** Erster Scan nach Neustart schreibt immer Headline ***
IF "%zeit%"=="05:08" GOTO OUTRESULT
IF NOT "%scansubnetz%"=="%result%" GOTO OUTRESULT
:: *** Ergebnis identisch, Kein Eintrag ***
GOTO ENDE
:OUTRESULT
ECHO %result% %timestamp% %resultNB%>tmp.txt
:: *** Server Neustart? Headline schreiben ***
IF "%zeit%"=="05:08" GOTO HEADLINE
IF exist ScanSubnetz.txt GOTO NOHEADLINE
:HEADLINE
ECHO *** Schreibe Headline ***
SET headline0=--------------------------------------------------------
SET headline1=12345678901234567890 Datum Zeit NetBIOS-Namen
ECHO %headline0%>>tmp.txt
ECHO %headline1%>>tmp.txt
ECHO %headline0%>>tmp.txt
:NOHEADLINE
:: *** Neue Einträge am Anfag des Protokolls einfügen ***
COPY tmp.txt /A + ScanSubnetz.txt /A tmp2.txt>NUL
DEL ScanSubnetz.txt>NUL
DEL tmp.txt>NUL
RENAME tmp2.txt ScanSubnetz.txt>NUL
:ENDE
ECHO set scansubnetz=%result%>ScanSubnetz2.cmd
ScanSubnetz1.cmd
@ECHO OFF
ping -n 2 -w 20 %1%2 | findstr "Antwort" >NUL
if %errorlevel%==0 GOTO ONLINE
:OFFLINE
set result=%result%.
::echo No Client on %1%2
GOTO ENDE
:ONLINE
set result=%result%J
ping -n 1 -w 20 -a %1%2 | SETWORD 2 >TMP.BAT
call TMP.BAT x
del TMP.BAT
if "%x%"=="wird" set x=[OhneName]
::echo Found Client %x% on %1%2
set resultNB=%resultNB%, %2:%x%
:ENDE
Das Programm SETWORD kannst Du Dir selber basteln
oder ich schicke es Dir...
--------------------------------------------schnipp---------------
e100 BE 81 0 AC "< t"FB "N+"C0 "*"FF B9 A 0 8A 1C "F"80 EB "08"CB
e118 "s"6 F7 E1 1 D8 "s"ED "P"BE A2 1 "+"DB 89 F2 B9 0 F0 B4 "?"CD
e12E "!"8B D8 C6 0 1A B9 7 0 BA 9B 1 BB 1 0 B4 40 CD "!]"85 ED "u"
e145 1 "E+"C9 AC "< t"FB "<,t"F7 "<;t"F3 "<=t"EF "<"D "t"EB "<"A
e160 "t"E7 "N"89 F2 80 "<"1A "t F"8A 4 "< t"14 "<,t"10 "<;t"C "<="
e17B "t"8 "<"D "t"4 "<"A "u"E0 "A;"CD "u"BF 8B CE ")"D1 B4 40 CD
e191 "!"B4 ">"CD "!"B8 0 "L"CD "!set %1="
n SETWORD.COM
rCX
A2
w
q
--------------------------------------------schnapp---------------
Das Skript enthält den kompletten Programm-Code als Folge von
Eingabebefehlen für DEBUG, und am Ende die Anweisungen zum Schreiben
der Datei.
Zur Erstellung der COM-Datei bitte wie folgt vorgehen:
* Skript zwischen den Trennlinien ausschneiden und in eine Datei
kopieren, z.B. SETWORD.SCR
* Auf der Befehlsebene eingeben: DEBUG < SETWORD.SCR
Die Eingabe-Datei wird damit von DEBUG als Input abgearbeitet, und
das Resultat wird in die Datei SETWORD.COM (ins aktuelle Verzeichnis)
geschrieben.
Gruß
Undertaker
Antwort 4 von [Rocco]
Ui ui ui....das sieht aber ganz schö nkomplziert aus, ich glaub da muss mich mich erst durcharbeiten ;-)
Ich hab auch gleichzeitig ein Tool von KS-Soft gefunden, nent sich Host-Monitor....nebenher probiere ich das auch aus.
Vielen Dank!
Ich hab auch gleichzeitig ein Tool von KS-Soft gefunden, nent sich Host-Monitor....nebenher probiere ich das auch aus.
Vielen Dank!
Antwort 5 von Rodi
Hi.
Wenns auch grafisch sein soll gibts was von HP.
Das Paket nennt sich NETVIEW.
Näheres aber bitte nicht fragen. A) es ist teuer
B) ich habe noch nicht damit gearbeitet.
Es gibt auch einige Lösungen die mit SNMP arbeiten.
Gruss @all,
Dirk
Wenns auch grafisch sein soll gibts was von HP.
Das Paket nennt sich NETVIEW.
Näheres aber bitte nicht fragen. A) es ist teuer
B) ich habe noch nicht damit gearbeitet.
Es gibt auch einige Lösungen die mit SNMP arbeiten.
Gruss @all,
Dirk
Antwort 6 von Undertaker
Hi,
>> Ui ui ui....das sieht aber ganz schön komplziert aus
Hä? Datt is doch blos´n bissle anspruchslose Batchprogrammierung. ;-)
Du mußt nur in der Schleife den ersten und letzen Wert für das virte Octet eintragen und ggf. die ersten drei Octets (192.168.100.) auf das Netzwerk anpassen.
Dann noch die Headline anpassen, wenn weniger oder mehr als die eingestellten 20 IPs gescannt werden.
Und abschließend über den Taskplaner alle paar Minuten laufen lassen...
Ist nicht die schnellste Lösung, aber sie kostet nichts, bringt keine Spyware mit und für mein privates LAN reicht sie vollkommen.
Ich hab auch gleichzeitig ein Tool
Na, dem kann mein Script natürlich nicht das Wasser reichen... ;-)
Ich hätte da noch ein Script, das mit NET VIEW arbeitet und schneller ist. Hat aber den gleichen bescheidene Aktuallität, die man aus der Netzwerkumgebung (Browserliste, WINS) gewohnt ist...
ScanNetBIOSNames.cmd
ScanNetBIOSNames1.cmd
Gruß
Undertaker
>> Ui ui ui....das sieht aber ganz schön komplziert aus
Hä? Datt is doch blos´n bissle anspruchslose Batchprogrammierung. ;-)
Du mußt nur in der Schleife den ersten und letzen Wert für das virte Octet eintragen und ggf. die ersten drei Octets (192.168.100.) auf das Netzwerk anpassen.
Dann noch die Headline anpassen, wenn weniger oder mehr als die eingestellten 20 IPs gescannt werden.
Und abschließend über den Taskplaner alle paar Minuten laufen lassen...
Ist nicht die schnellste Lösung, aber sie kostet nichts, bringt keine Spyware mit und für mein privates LAN reicht sie vollkommen.
Ich hab auch gleichzeitig ein Tool
Na, dem kann mein Script natürlich nicht das Wasser reichen... ;-)
Ich hätte da noch ein Script, das mit NET VIEW arbeitet und schneller ist. Hat aber den gleichen bescheidene Aktuallität, die man aus der Netzwerkumgebung (Browserliste, WINS) gewohnt ist...
ScanNetBIOSNames.cmd
@ECHO OFF
DEL LIST.TXT>NUL
FOR /F "skip=2 tokens=1" %%a in ('NET VIEW') do @call ScanNetBIOSNames1.cmd %%a
DEL LIST2.TXT>NUL
FOR /F "tokens=1,2,3,5,6,7 delims= " %%a in (LIST.TXT) do ECHO %%a.%%b.%%c.%%d %%e %%f>>LIST2.TXT
REN LIST2.TXT ScanNetBIOSNames.txt
ScanNetBIOSNames1.cmd
@ECHO OFF
ECHO %1 | FINDSTR /R "\\.*">TMP.TXT
IF %errorlevel%==1 GOTO ENDE
::arp -d *>NUL
FOR /F "tokens=1 delims=\ " %%a in (TMP.TXT) do set netbiosname=%%a
ping -a -n 1 -w 20 %netbiosname% | findstr "Antwort">TMP.TXT
IF %errorlevel%==1 GOTO ENDE
FOR /F "tokens=3 delims=. " %%a in (TMP.TXT) do set y=%%a
FOR /F "tokens=1 delims= " %%a in ('ECHO %y%') do set octet1=%%a
FOR /F "tokens=4 delims=. " %%a in (TMP.TXT) do set y=%%a
FOR /F "tokens=1 delims= " %%a in ('ECHO %y%') do set octet2=%%a
FOR /F "tokens=5 delims=. " %%a in (TMP.TXT) do set y=%%a
FOR /F "tokens=1 delims= " %%a in ('ECHO %y%') do set octet3=%%a
FOR /F "tokens=6 delims=. " %%a in (TMP.TXT) do set y=%%a
FOR /F "tokens=1 delims= " %%a in ('ECHO %y%') do set octet4=%%a
ECHO %octet4% | FINDSTR /R "...:">NUL
IF %errorlevel%==1 SET octet4=0%octet4%
ECHO %octet4% | FINDSTR /R "...:">NUL
IF %errorlevel%==1 SET octet4=0%octet4%
FOR /F "tokens=1 delims=: " %%a in ('ECHO %octet4%') do set octet4=%%a
FOR /F "tokens=1 delims=: " %%a in ('ECHO %y%') do set y=%%a
ARP -a | FINDSTR .%y%>TMP.TXT
FOR /F "tokens=2" %%a in (TMP.TXT) do set mac=%%a
ECHO %octet1% %octet2% %octet3% %octet4% %y% %mac% %netbiosname%>>LIST.TXT
SORT LIST.TXT /O LIST.TXT
:ENDE
Gruß
Undertaker
Antwort 7 von Undertaker
Ups, Fehler!
Es fehlt im Script ScanNetBIOSNames.cmd eine Zeile:
Es fehlt im Script ScanNetBIOSNames.cmd eine Zeile:
FOR [...]
DEL ScanNetBIOSNames.txt>NUL
REN [...]