Exemple #1
0
        public static void Main(string[] args)
        {
            var mac = new MacAddress("a1:b2:c3:d4:e5:f6");

            WakeOnLan.WakeUp(mac);
            Console.WriteLine(mac);
            Console.ReadKey();
        }
Exemple #2
0
 /// <summary>
 /// Wakes the computer with a given MacAddress.
 /// </summary>
 /// <param name="macAddress">The computer to wake up.</param>
 /// <param name="port">The port to send the packet on. Defaults to UDP 9.</param>
 public static void WakeUp(MacAddress macAddress, int port = WakeOnLanPort)
 {
     try
     {
         var packet = ConstructPacket(macAddress);
         var client = new UdpClient();
         client.Connect(IPAddress.Broadcast, port);
         client.Send(packet, packet.Length);
     }
     catch (Exception e)
     {
         throw new WakeOnLanFailedException(macAddress, e);
     }
 }
Exemple #3
0
        /// <summary>
        /// Constructs a WakeOnLan magic packet.
        /// </summary>
        /// <param name="macAddress">MacAddress to construct the packet from.</param>
        /// <returns>A byte[] representing the magic packet.</returns>
        private static byte[] ConstructPacket(MacAddress macAddress)
        {
            if (macAddress == null)
            {
                throw new ArgumentNullException(nameof(macAddress), "A MacAddress must be provided.");
            }

            var packet = new byte[WakeOnLanPacketSize];

            for (var i = 0; i < MacAddress.MacAddressLength; i++)
            {
                packet[i] = 0xFF;   // packet header
            }
            // packet body
            for (var i = 1; i < 17; i++)
            {
                Array.Copy(macAddress.MacAddressBytes, 0, packet, i * MacAddress.MacAddressLength, MacAddress.MacAddressLength);
            }
            return(packet);
        }