0Logo de alarma del relojPHP / JavaScript para despertar a un PC de forma remota

Yo tengo un HTPC y un servidor de red en mi red. Mi servidor está siempre en, pero el HTPC duerme cuando no está en uso. Si quiero programar grabaciones de forma remota necesito una manera de despertar la HTPC.  La solución que se me ocurrió es proporcionar una página web en mi servidor (protegido con contraseña) que despierta la HTPC y luego vuelve a dirigir a la interfaz web de la aplicación de control remoto de la HTPC.  A continuación se muestra el código para cualquier persona interesada ...

<html>
<head>
<meta http-equiv='refresh' content='11;url=address of htpc here' />
<script type="text/javascript">
// time is the number of seconds left
// name is the text part of the container to insert countdown in
// num is the unique id of the container. Allows for more than 1 per page
function countdown(time, name, num)
{
  // grab the element object of the countdown container
  countdownDiv = document.getElementById(name + num);
  // calculate number of minutes from the seconds
  minutes = Math.floor(time / 60);
  // remainder is number of seconds
  seconds = time % 60;
  // add the current countdown display to the container specified
  countdownDiv.innerHTML = 'after ' + seconds + ' seconds, please wait';
  if(time == 1)countdownDiv.innerHTML = 'after ' + seconds + ' second, please wait';
  // if time is up remove the edit div, otherwise repeat every second
  if(time <= 0) countdownDiv.innerHTML = 'now...';
  else setTimeout('countdown(' + --time + ',"' + name + '","' + num + '");', 1000);
}
</script>
</head>
<body bgcolor='#000022' style='text-align: center; color: white; padding-top: 30px;'>
<h2>
The TV interface will automatically load <div id="div_name1" style="display:inline;"></div>
<script type="text/javascript">countdown(12, "div_name", 1)</script>
</h2>
<?php
flush();
$addr_byte = explode(':', "MAC Address of htpc here");
$hw_addr = '';
for ($a=0; $a <6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
$msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;
$s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$opt_ret = socket_set_option($s, 1, 6, TRUE);
if(socket_sendto($s, $msg, strlen($msg), 0, "local subnet address here", "7")) {socket_close($s);return TRUE;}else {return FALSE;}
?>
</body>
</html>

Qué piensas? envíanos un comentario más abajo! Si desea suscribirse por favor utilice el enlace de suscripción en el menú en la parte superior derecha. También puede compartir esto con tus amigos mediante el uso de los enlaces sociales inferiores. Aclamaciones.

Deja una respuesta