2009-05-14 12 views
4

Was ist der beste Weg für die Implementierung von Wake on LAN mit C#?Wake on LAN mit C#

Die Funktionalität wird für Maschinen in einer LAN-Umgebung (und nicht über das Internet) benötigt. Die Methode muss robust genug sein, um sich um Firewalls und andere Probleme zu kümmern. Auch für Systeme, die diese Funktionalität nicht unterstützen oder deaktiviert sind, gibt es eine Alternative?

Das Hauptziel - Maschinen aufwecken (aus dem Stillstand/Ruhezustand) über das LAN - dies soll mit C# programmiert werden.

Bitte führen.

PS: Ich habe über die folgenden kommen:

  1. http://blog.memos.cz/index.php/team/2008/06/12/wake-on-lan-in-csharp
  2. http://community.bartdesmet.net/blogs/bart/archive/2006/04/02/3858.aspx
  3. http://www.codeproject.com/KB/IP/cswol.aspx

Aber ich bin neu in diesem und daher nicht verstehen könnte, wenn Die Lösungen waren umfassend genug. Wenn jemand empfehlen könnte, einem der obigen Artikel zu folgen, würde das helfen.

+0

"Die Methode muss robust genug sein, um auf Firewalls und andere solche Probleme zu achten." Was bedeutet das? Sie möchten ein Programm in C# schreiben, das eine Firewall passieren kann und einen Computer hinter dieser Firewall aufwecken kann? Das ist eine große Frage ... – Stobor

Antwort

12

Für das WOL Problem, das Sie drei Probleme zu klären, um es an die Arbeit:

  1. ein WOL über das Ethernet-Kabel senden
  2. PC konfigurieren für solche ein Paket zu hören und aufwachen
  3. Stellen Sie sicher, das Paket von Absender kommen zum Empfänger (Firewall, Gateways etc.)

Wie Sie ein Im Internet gibt es mehrere Lösungen für das erste Problem, das in C# programmiert wurde (und nachdem ich Ihre Links übersprungen habe, würde ich mit dem ersten beginnen).

Die zweite Möglichkeit können Sie nur erreichen, indem Sie Ihren Netzwerkadapter konfigurieren. Öffnen Sie einfach den Gerätemanager und schauen Sie sich die Eigenschaften Ihres Netzwerkadapters an, falls eine solche Option existiert und Sie diese aktivieren können. Dies kann nicht programmiert werden, da jeder Netzwerkadapter eine andere Implementierung dieser Funktion hat und wie sie aktiviert werden kann.

Das dritte Problem kann nicht auch von C# gelöst werden. Es ist ein reines Netzwerkproblem, bei dem Sie Ihren Router, Gateways, Ids-Systeme usw. konfigurieren müssen, um ein solches Paket zuzulassen und es vom Sender zum Empfänger fließen zu lassen. Da ein WOL-Paket immer ein Broadcast-Paket ist (dest-ip 255.255.255.255), verlässt es nicht Ihr lokales Netzwerk und wird immer von Routern, Gateways oder anderen Brücken zwischen Netzwerken (zB vpns, etc.).

Last but not least erinnere ich Sie nur daran, dass das erste Problem in einige kleinere Pakete aufgeteilt werden kann, aber soweit ich sehen konnte, sind diese Probleme durch die von Ihnen bereitgestellten Links begrenzt.