DIY Главная Медиа Logo

Конечная сайт для проектирования и создания вашей установке домашнего кинотеатра и Привет-Fi.

0Будильник LogoPHP / JavaScript, чтобы разбудить компьютера удаленно

У меня есть HTPC and a net­work serv­er on my net­work. My serv­er is always on, но HTPC sleeps when it is not in use. If I want to sched­ule record­ings remotely I need a way to wake the HTPCThe solu­tion I came up with is to provide a webpage on my serv­er (защищенный паролем) что будит HTPC а затем перенаправляет на веб-интерфейс дистанционного управления приложением из HTPC.  Ниже приведен код для всех, кто интересуется ...

<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>

Думаю, что мы что-то пропустили? Дайте нам знать, комментируя ниже. Если вы хотите подписаться, используйте ссылку подписки в меню в правом верхнем углу.. Вы также можете поделиться этим со своими друзьями, используя приведенные ниже социальные ссылки.. Ура.

оставьте ответ