Feedback

C# - Wake on LAN

Veröffentlicht von am 8/14/2007
(3 Bewertungen)
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);
}
Abgelegt unter MAC, Wake on LAN, Lan, WOL, Magic packet.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!