ich suche ein Tool oder eine Anleitung zum Programmieren, um feststellen zu können ob bestimmte PCs im LAN eingeschaltet sind.
Alle PCs im LAN haben feste IP-Adressen.
Der ping Befehl ist mir bekannt.
Ich möchte aber ein kleines Fenster haben in dem steht: PC1 ein, PC2 aus, PC3 aus, … und in dem die Daten automatisch, ca. ein mal pro Minute, aktualisiert werden.
ich suche ein Tool oder eine Anleitung zum Programmieren, um
feststellen zu können ob bestimmte PCs im LAN eingeschaltet
sind.
Alle PCs im LAN haben feste IP-Adressen.
Der ping Befehl ist mir bekannt.
Ich möchte aber ein kleines Fenster haben in dem steht: PC1
ein, PC2 aus, PC3 aus, … und in dem die Daten automatisch,
ca. ein mal pro Minute, aktualisiert werden.
Programmieren ist recht einfach, sofern perl samt libnet installiert ist, tut es ein (etwas längerer) Einzeiler:
ob es sich automatisch alle Minute aktualisiert weiß ich jetzt nicht, das Programm ist Shareware (Lizenz 25,00 €) und zeigt Dir bspw. die IP-Adressen an (siehe diesen Screenshot http://www.profiler3d.de/download/Scannet/Scannet_sc…) und Du bleibst in der gewohnten Windowsumgebung.
danke, war 'n Tippfehler, nicht bemerkt.
Wenn Du nichts bekommst und ich merke es nicht, dann mail mal, ich schreibe Dir das dann schnell in VB. Mit QBasic wird’s nicht gehen.
Danke, aber ich programmiere eher altmodisch mit DOS-Basic.
Intervall = 60 : REM Aktualisierungsintervall in Sekunden
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* Hier stehen die PC Namen und die zugehörigen IP-Adressen im LAN
REM \*\*\* Letzter Eintrag muss "DATA ," sein!
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
DATA "PC01", "192.168.0.1"
DATA "PC02", "192.168.0.2"
DATA "PC03", "192.168.0.9"
DATA "PC04", "192.168.0.17"
DATA ,
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* Generieren C:\LANping.bat
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
OPEN "C:\LANping.bat" FOR OUTPUT AS #1
PRINT #1, "@echo off"
PRINT #1, "echo. \>C:\pingecho.dat"
READ PC$, IPS$
WHILE PC$ ""
PRINT #1, "echo Host: "; PC$; "("; IP$; ") \>\>C:\pingecho.dat"
PRINT #1, "ping "; IP$; " -a -n 1 -w 30 \>\>C:\pingecho.dat"
READ PC$, IP$
WEND
PRINT #1, "EXIT"
CLOSE #1
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* ausführen C:\LANping.bat und Schleife bis eine Taste gedrückt wird
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
GOSUB 1000
IF Intervall 1 THEN
COLOR flag
PRINT output$
flag = 0
COLOR 7
END IF
LINE INPUT #1, in$
WEND
CLOSE #1
PRINT : PRINT "Für Abbruch eine Taste drücken!"
RETURN
Der Basic Compiler mochte einige Variablennamen nicht, da sie Befehlen zugeordnet sind.
Hier das komplette lauffähige Listng:
Intervall = 60 : REM Aktualisierungsintervall in Sekunden
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* Hier stehen die PC Namen und die zugehörigen IP-Adressen im LAN
REM \*\*\* Letzter Eintrag muss "DATA ," sein!
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
DATA "PC1", "192.168.0.1"
DATA "PC2", "192.168.0.10"
DATA "PC3", "192.168.0.20"
DATA "PC4", "192.168.0.30"
DATA ,
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* Generieren C:\LANping.bat
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
OPEN "C:\LANping.bat" FOR OUTPUT AS #1
PRINT #1, "@echo off"
PRINT #1, "echo. \>C:\pingecho.dat"
RESTORE
READ PC$, IP$
WHILE PC$ ""
PRINT #1, "echo Host: "; PC$; "("; IP$; ") \>\>C:\pingecho.dat"
PRINT #1, "ping "; IP$; " -n 1 -w 30 \>\>C:\pingecho.dat"
REM PRINT #1, "ping "; IP$; "-a -n 1 -w 30 \>\>C:\pingecho.dat":REM nur wenn der Name beim Ping aufgelöst werden soll
READ PC$, IP$
WEND
PRINT #1, "EXIT"
CLOSE #1
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
REM \*\*\* ausführen C:\LANping.bat und Schleife bis eine Taste gedrückt wird
REM \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
GOSUB 1000
IF Intervall 1 THEN
COLOR flag
PRINT outpu$
flag = 0
COLOR 7
END IF
LINE INPUT #1, inpu$
WEND
CLOSE #1
PRINT : PRINT "Für Abbruch eine Taste drücken!"
RETURN