/// <summary> /// Wakes the desired device via Wake-on-LAN. /// It only executes when Trigger is set to true. /// The MAC address must be a valid MAC address in format AA:BB:CC:DD:EE:FF or AABBCCDDEEFF. /// </summary> public override void Execute() { byte[] macAddress = new byte[6]; if (this.MacAddress.HasValue && this.Trigger.HasValue && this.Trigger.Value) { WakeOnLanImpl.WakeOnLan(IPAddress.Broadcast, this.MacAddress); } }
public static void WakeOnLan(string macAddress) { var broadcasts = WakeOnLanImpl.GetAllBroadcastAddresses(); foreach (var broadcastAddr in broadcasts) { try { WakeOnLan(broadcastAddr, macAddress); } catch (SocketException e) { if (e.SocketErrorCode != SocketError.NetworkUnreachable) { // NetworkUnreachable might happen for inactive NICs, // so we ignore this here and re-throw everything else. throw; } } } }