Seitenhierarchie

  Wiki Navigation

    Loading...


 Recently Updated


 Latest Releases

 MediaPortal 1.32
            Releasenews | Download
 MediaPortal 2.5
            Releasenews | Download


Question

How do I Use the 'Wake on LAN' plugin?

Answer

Extract the server IP from the UNC path ("\\server\share") and store the MAC address in MediaPortal.xml Use it in configure.exe or setting screen of your plugin.

private void SaveMAC(string uncPath)
    {
      String macAddress;
      byte[] hwAddress;
 
      WakeOnLanManager wakeOnLanManager = new WakeOnLanManager();
 
      IPAddress ipAddress = null;
      string hostName = Util.Utils.GetServerNameFromUNCPath(uncPath);
 
      using (Profile.Settings xmlreader = new MPSettings())
      {
        macAddress = xmlreader.GetValueAsString("macAddress", hostName, null);
      }
 
      if (wakeOnLanManager.Ping(hostName, 100) && !string.IsNullOrEmpty(macAddress))
      {
        Log.Debug("WakeUpServer: The {0} server already started and mac address is learnt!", hostName);
        return;
      }
 
      // Check if we already have a valid IP address stored,
      // otherwise try to resolve the IP address
      if (!IPAddress.TryParse(hostName, out ipAddress))
      {
        // Get IP address of the server
        try
        {
          IPAddress[] ips;
 
          ips = Dns.GetHostAddresses(hostName);
 
          Log.Debug("WakeUpServer: WOL - GetHostAddresses({0}) returns:", hostName);
 
          foreach (IPAddress ip in ips)
          {
            Log.Debug("    {0}", ip);
 
            ipAddress = ip;
            // Check for valid IP address
            if (ipAddress != null)
            {
              // Update the MAC address if possible
              hwAddress = wakeOnLanManager.GetHardwareAddress(ipAddress);
 
              if (wakeOnLanManager.IsValidEthernetAddress(hwAddress))
              {
                Log.Debug("WakeUpServer: WOL - Valid auto MAC address: {0:x}:{1:x}:{2:x}:{3:x}:{4:x}:{5:x}"
                  , hwAddress[0], hwAddress[1], hwAddress[2], hwAddress[3], hwAddress[4], hwAddress[5]);
 
                // Store MAC address
                macAddress = BitConverter.ToString(hwAddress).Replace("-", ":");
 
                Log.Debug("WakeUpServer: WOL - Store MAC address: {0}", macAddress);
 
                using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.MPSettings())
                {
                  xmlwriter.SetValue("macAddress", hostName, macAddress);
                }
              }
              else
              {
                Log.Debug("WakeUpServer: WOL - Not a valid IPv4 address: {0}", ipAddress);
              }
            }
          }
        }
        catch (Exception ex)
        {
          Log.Error("WakeUpServer: WOL - Failed GetHostAddress - {0}", ex.Message);
        }
      }
    }

   

 

This page has no comments.