ubuntuusers.de

Wake up on LAN Webinterface

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

iKoze

Avatar von iKoze

Anmeldungsdatum:
19. Februar 2010

Beiträge: Zähle...

Wohnort: Rapperzell

Hallo Leute,

wollte einmal fragen, ob es ein Webinterface für Wake up on LAN gibt, welches ich auf meinen eigenen Server draufmachen kann. Ich will also eine Website, welche auf meinem Server läuft, mit welcher ich Rechner im LAN starten kann.

Vielen Dank für eure Hilfe.

nbkr

Avatar von nbkr

Anmeldungsdatum:
29. Oktober 2007

Beiträge: 1936

Wohnort: Aschaffenburg

Ich weiß nicht ob es sowas schon gibt, aber mit Hilfe von PHP ist sowas schnell zusammengezimmert. Du musst eigentlich nur den Befehl

sudo etherwake <adresse>

durch das PHP Script ausführen lassen. Dafür gibt es die Funktion "exec".

Dalai

Avatar von Dalai

Anmeldungsdatum:
16. Juni 2008

Beiträge: 2316

Wohnort: Meiningen

Ich empfehle hierfür eher das Programm wakeonlan, denn das darf jeder ausführen (liegt in /usr/bin). sudo in nem Skript ist immer dann ne schlechte Idee, wenn man nicht sicherstellen kann, dass das Skript nicht nach nem Passwort fragt 😉.

MfG Dalai

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6502

Wohnort: Hamburg

Also als fertige Lösung kenne ich soawas nicht. Aber es sollte eigentlich kein Problem sein, sowas als PHP Script oder als lokales Bash Script zu realisieren. Wenn du einen PHP fähigen Server hast, der ständig läuft kann man das natürlich via PHP machen (mit wakeonlan!). Bei mir ist das aber nicht gegeben, da mein Router nicht PHP fähig ist, weshalb ich sowas über ein lokales Bash Script löse.

Die Frage bei solchen Lösungen ist immer:

  • wieviele Rechner sollen bei Bedarf gestartet werden

  • wieviele Anwender sollen diese Rechner starten können

Wenn das Verhältnis 1:1 ist reicht ja vielleicht auch ein Spickzettel.

reknedsredna

Anmeldungsdatum:
10. Juni 2007

Beiträge: 106

Wohnort: Gochsheim

iKoze

(Themenstarter)
Avatar von iKoze

Anmeldungsdatum:
19. Februar 2010

Beiträge: 22

Wohnort: Rapperzell

Ich weiß, dass die Antwort jetzt ein "bisschen" spät kommt, aber ich brauche es erst jetzt. Kann hier bitte jemand schreiben, wie ein PHP Script aussieht, welches genau eine Schaltfläche besitzt, welche dann diesen Befehl ausführt, wenn man darauf klickt? Ich habe leider absolut keinen blassen Schimmer von PHP. 😕 Würde mich deswegen sehr darüber freuen. 🤣

Danke!

yoda123

Avatar von yoda123

Anmeldungsdatum:
1. Oktober 2008

Beiträge: 156

Wohnort: Bergkamen, NRW

Mit oder ohne Passwortschutz?

Mit sähe es so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
if ($_POST["passwort"]=="supergeheimespasswort")
{
	echo '<pre>';
	echo shell_exec("wakeonlan 01:02:03:04:05:06");
	echo '</pre>';
}
else
	echo '<b>Falsches Passwort!</b>';
?>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">
<input type="password" name="passwort">
<input type="submit" value="Aufwecken">
</form>

Hab's allerding nicht getestet; 01:02:03:04:05:06 wäre dann die MAC-Adresse des Rechners.

mfg

yoda123

P.S.: vllt. wäre gWakeOnLan erwähnenswert.

iKoze

(Themenstarter)
Avatar von iKoze

Anmeldungsdatum:
19. Februar 2010

Beiträge: 22

Wohnort: Rapperzell

Hat sich inzwischen schon erledigt. Habe den folgenden Code in eine .php Datei geschrieben und verweise mit einem Link auf meiner Website darauf. Wen es interessiert, wofür ich das alles gebraucht habe: http://www.floriware.de/Fischicam. Ich betreibe eine Webcam zur betrachtung von Goldfischen und möchte diese von den Usern aufwecken lassen. (weitere Infos auf der Seite).

<?php

$mac = 'xx:xx:xx:xx:xx:xx'; //MAC Adresse
$ip = 'udp://meindns.dyndns.org'; //oder mit IP z.B.: udp://192.168.0.1

function wakeup($mac_addr,$router_addr) {
     if ($fp = fsockopen($router_addr, 9, $errno, $errstr, 4)) {
          //erlaubte Zeichen:
          $hexchars = array("0","1","2","3","4","5","6","7","8","9",
          "A","B","C","D","E","F",
          "a","b","c","d","e","f"
          );


     // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
     $data = "\xFF\xFF\xFF\xFF\xFF\xFF";
     $hexmac = "";

     // Jetzt werden unntige zeichen in der mac-adresse
     // entfern (also z.B. die bindestriche usw.)
     for ($i = 0; $i < strlen($mac_addr); $i++) {
          if (!in_array(substr($mac_addr, $i, 1), $hexchars)) {
               $mac_addr = str_replace(substr($mac_addr, $i, 1), "",
$mac_addr);
               }
          }

     for ($i = 0; $i < 12; $i += 2) {
          $hexmac .= chr(hexdec(substr($mac_addr, $i, 2)));
          }

     // Hexadresse wird 16mal hintereinandergeschrieben
     for ($i = 0; $i < 16; $i++) {
          $data .= $hexmac;
          }
     fputs($fp, $data);
     fclose($fp);
     echo 'MagicPaket wurde verschickt';
     return true;
     }
Else {
     echo "<b>Warnung: $errno</b> $errstr<br>";
     return false;
     }
}

wakeup($mac, $ip);

?>

Problem gelöst, Danke an Alle.

Dark_Wolf

Avatar von Dark_Wolf

Anmeldungsdatum:
12. August 2006

Beiträge: 2648

Wohnort: Linuxland

Hallo Leute,

ist schon länger her, aber ich mach das mit Webmin. Hier kann man Custom Commands im Webinterface erstellen.

lg boospy

Antworten |