Normal
Using Wake On Lan in plugins.Extract the server IP from the UNC path ("\\server\share") and store the MAC address in MediaPortal.xmlUse it in configure.exe or setting screen of your plugin.[CODE=C#] 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); } } }[/CODE]Wake up the server before read the files from the share.[CODE=C#]serverName = Util.Utils.GetServerNameFromUNCPath(uncPath);WakeupUtils.HandleWakeUpServer(serverName, wolTimeout);[/CODE]
Using Wake On Lan in plugins.
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.
[CODE=C#] 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);
}[/CODE]
Wake up the server before read the files from the share.
[CODE=C#]serverName = Util.Utils.GetServerNameFromUNCPath(uncPath);
WakeupUtils.HandleWakeUpServer(serverName, wolTimeout);[/CODE]