C# - Wake on LAN

By , 7/30/2013
(0 ratings)
Example call for MAC address 00:30:84:79:AA:E3:

byte[] macaddress = new byte[] {0x00, 0x30, 0x84, 0x79, 0xAA, 0xE3};
WakeOnLan(macaddress);


You need the following namespaces:

using System;
using System.Net;
using System.Net.Sockets;


Author: Anonymus, translation by Michael List
/// <summary>
/// Sends a Wake-On-Lan packet to the specified MAC address.
/// </summary>
/// <param name="mac">Physical MAC address to send WOL packet to.</param>
private static void WakeOnLan(byte[] mac)
{
    // WOL packet is sent over 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];

    // Send WOL packet.
    client.Send(packet, packet.Length);
}
Tagged with MAC, WakeonLAN, Lan, WOL, Magicpacket.

Comments

 

Log in, to comment!