WOL - přes internet z venku po delší době

Poskytovatelé a technologie, dial-up, ADSL, kabel, optika, bezdrátové připojení

Moderátor: Moderátoři Živě.cz


Odeslat příspěvekod Miromex 16. 3. 2018 04:34

Riešil som to cez "web stránku" umiestnenú v NAS.
Kód: Vybrat vše
<?php
flush();
/* Sieť */
$broadcast_address = "192.168.1.255"; /* príklad */
$port = 9;
/* ZARIADENIA */
$MAC1 = "12:AB:34:CD:56:EF"; /* príklad */
$Zariadenie1 = "PC1"; /* príklad */

$MAC2 = "78:AB:34:CD:56:EF"; /* príklad */
$Zariadenie2 = "Zariadenie2"; /* príklad */

function WakeOnLan($addr, $mac, $socket_number)
{
   $addr_byte = explode(':', $mac);
   $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);
   
   if($s == false)
   {
      echo "Nemožno vytvoriť socket!<BR>\n";
      echo "Chyba: '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
      return FALSE;
   }
   else
   {
      $opt_ret = socket_set_option($s, 1, 6, TRUE);
     
      if($opt_ret < 0)
      {
         echo "setsockopt() failed, error: " . strerror($opt_ret) . "<br>\n";
         return FALSE;
      }
     
      if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number))
      {
         $content = bin2hex($msg);
         echo "Magic Packet Odoslaný!<BR>\n";
         echo "Data: <textarea readonly rows=\"1\" name=\"content\" cols=\"".strlen($content)."\">".$content."</textarea><BR>\n";
         echo "Port: ".$socket_number."<br>\n";
         echo "MAC: ".$_GET['wake_machine']."<BR>\n";
         socket_close($s);
         return TRUE;
      }
      else
      {
         echo "Magic Packet nebol odoslaný!<br>";
         return FALSE;
      }
   }
}

$result = null;

if($_GET["wake_machine"] != "")
    $result = WakeOnLan($broadcast_address, $_GET["wake_machine"], $port);

if($result != null)
{if ($_GET["wake_machine"] != $MAC1)
{ $ZAR=$Zariadenie2;}
else
{$ZAR=$Zariadenie1;}
   echo "<hr>WOL pre ".$ZAR." bol úspešný!<br><br>\n";
}
?>

<title>Wake On LAN - Prebudenie zariadenia v sieti</title>

<s:select label="WakeOnLan"
    headerKey="-1" headerValue="Select Machine"
    list="machines"
    name="WakeOnLan" />

<form name="WakeOnLan" method="GET" action="index.php">
<td class="WOL">
   <label for="WakeOnLan" class="label">
       Vyberte zariadenie na prebudenie:<br>
   </label>
</td>
<td>
<select name="wake_machine" id="WakeOnLan">
    <option value="-1">Vyber Zariadenie!</option>
    <option value=<?php echo $MAC1 ?>><?php echo $Zariadenie1; ?></option>
    <option value=<?php echo $MAC2 ?>><?php echo $Zariadenie2; ?></option>
<input type="submit" value="Odoslať" />
</form>
</select>
</td>
Miromex
Junior

Předchozí stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník