Wake on LAN in C#
Beispielaufruf für die Mac Adresse 00:30:84:79:AA:E3
byte[] macaddress = new byte[] {0x00, 0x30, 0x84, 0x79, 0xAA, 0xE3};
WakeOnLan(macaddress);
Benötigte Namespaces:
using System;
using System.Net;
using System.Net.Sockets;
/// <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);
}
Kommentare zum Snippet