Wake-On-Lan mit C#-Methode auslösen

Ich hätte hier mal ein kleines Snippet, was ich euch nicht vorenthalten will. Die Methode schickt das sogenannte “Magic Packet” an einen Rechner im lokalen Netz um diesen per Wake-On-Lan einzuschalten (vorausgesetzt die Konfiguration ist korrekt und die Hardware unterstützt Wake-On-Lan). Das ganze habe ich für Quickschedule gebraucht. Das ist ein kleines Tool um Aufnahmen vom TVBrowser in’s Mediaportal zu schieben.

public int WakeOnLan(string macString)
{
    byte[] mac = new byte[6];
    string macPart = null;

    // parsing loop to convert string to byte array
    for ( int i = 0; i < 6; i++ ){
        macPart = macString.Substring(i*3,2);
        if ( macPart.Equals(String.Empty)){
            Error.Show("Error parsing mac", Error.Severity.Error);
            return -1;
        }
        mac[i] = byte.Parse(macPart, System.Globalization.NumberStyles.HexNumber);
    }

    // WOL always via UDP 255.255.255.0:40000.
    UdpClient client = new UdpClient();
    client.Connect(IPAddress.Broadcast, 40000);

    // WOL packet contains a 6-bytes trailer and 16 times a 6-bytes sequence containing the MAC address.
    byte[] packet = new byte[17 * 6];

    // Trailer of 6 times 0xFF.
    for (int i = 0; i < 6; i++)
        packet[i] = 0xFF;

    // Body of magic packet contains 16 times the MAC address.
    for (int i = 1; i <= 16; i++)
        for (int j = 0; j < 6; j++)
            packet[i * 6 + j] = mac[j];

    // go go go
    client.Send(packet, packet.Length);

    return 1;
}

One thought on “Wake-On-Lan mit C#-Methode auslösen

  1. Pingback: Tweets die Wake-On-Lan mit C#-Methode auslösen - devbar.de erwähnt -- Topsy.com

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>