Wake on LAN per C# 👍 👎

Wake on LAN ist ein Standard zum Starten eines deaktivierten Rechners über eine kompatible Netzwerkkarte. Dazu wird lediglich ein bestimmtes Paket im Netzwerk gesendet; mit C# lässt sich das beispielsweise so lösen:
Klasse implementieren
0102030405060708091011121314151617181920212223242526272829
public static class WakeOnLAN {    public static void SendMagicPacket(byte[] macAddress) {        using(UdpClient udpClient = new UdpClient()) {            udpClient.Connect(IPAddress.Broadcast, 9);
byte[] magicPacket = new byte[(6 + (16 * 6))];
for(int i = 0; i < 6; i++) { magicPacket[i] = 0xFF; }
for(int i = 1; i <= 16; i++) { for(int j = 0; j < 6; j++) { magicPacket[((i * 6) + j)] = macAddress[j]; } }
udpClient.Send(magicPacket, magicPacket.Length); } }
public static void SendMagicPacket(string macAddress) { SendMagicPacket(macAddress .Split(':', '-') .Select(m => Byte.Parse(m, NumberStyles.AllowHexSpecifier)) .ToArray() ); }}
Das Paket enthält sechs mal den Wert FF16, gefolgt von der 16-maligen Wiederholung der MAC-Adresse und wird per Broadcast im Netzwerk versendet. Durch die Methodenüberladung wird die Übergabe der MAC-Adresse sowohl per Zeichenkette als auch per Byte-Feld ermöglicht:
Klasse verwenden
01020304050607
WakeOnLAN.SendMagicPacket("11:22:33:44:55:66");
/* – oder – */
WakeOnLAN.SendMagicPacket(new byte[] { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66});


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche