Herrunterfahren nach Netzwerkclient-Abfrage

Hallo zusammen,

ich habe da so eine Idee im Kopf, jedoch hab in der Programmierungsumsetzung Probleme. Ich habe ein Netzwerk zu Hause mit einem Server auf dem Windows Server 2003 läuft. Der Server soll sich abends, wenn kein Rechner mehr an ist abschalten.

Meine Idee ist es ein Skript zu schreiben das abläuft und über einen Ping jede IP abfragt.
Rechner an, Ping erfolgreich --> wird eine Variable auf 1 gesetzt
Rechner aus, Ping erfolglos --> wird eine Variable auf 0 gesetzt
Als Endbedinung, in der auch der Herunterfahren Befehl steht, müssen alle Variablen den Wert 0 haben. Dann fährt der Server runter.

Nun lässt sich sowas programmieren und ist es leicht umsetzbar?

Ich würde es gerne in C programmieren und dann später als dat-Datei ausführen mit Hilfe der Windows-zeitsteuerung

Hallo

Nun lässt sich sowas programmieren und ist es leicht
umsetzbar?

Grundsätzlich kann man ALLES programmieren. Ob das leicht umsetzbar ist, ist dann wieder eine andere Frage. Du brauchst duazu ein bisschen Erfahrung über Netzwerkprogrammierung (Winsocks) und solltest Informationen über das ICMP (Internet Control Message Protocol) haben.

Ich habe Programmieren mit Winsocks hier gelernt:
http://www.c-worker.ch/dokuwsck/index.php

Auf dieser Seite findest du auch ein Programm, das wie die ping.exe auf Windows funktioniert. Ich habe das selber schon einmal compiliert und getestet und soweit ich mich erinnern kann, hats auch funktioniert. Der Quellcode ist aber eher für forgeschrittene Programmierer:
http://www.c-worker.ch/tuts/raw_icmp.php

Du müsstest das Programm jetzt im Prinzip nur mehr so umschreiben, dass es in regelmäßigen Zeitabschnitten deine IP Adressen (könnte man eventuell aus einer Datei laden) durchpingt. Dazu könntest du einen Timer verwenden. Sieh dir dazu die Dokumentation in der MSDN an zu der SetTimer() Function und der WM_TIMER Message. (Dazu wäre aber ein registriertes, erstelltes und unsichtbares Fenster für eine Callback Function notwendig!!! (WNDCLASSEX, RegisterClassEx, CreateWindowEx, ShowWindow(hwnd, SW_HIDE)))
Dann kann das Programm mit Systemstart geladen werden und sagen wir mal jede halbe Minute die Clients durchpingen.

Ich würde es gerne in C programmieren und dann später als
dat-Datei ausführen mit Hilfe der Windows-zeitsteuerung

Da kann ich dir leider nicht helfen. Ich würde einen Timer verwenden.

Ich hoffe, ich konnte dir helfen.
mfg dixxi