Wake-On-Lan per URL-Aufruf von außen auslösen

Markus19

Neuer User
Mitglied seit
20 Jul 2005
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
Hallo Leute,

folgendes Problem: ich möchte einen Rechner vom "Internet" aus aufwecken können. Ist sowas irgendwie möglich? Hier im lokalen Netzwerk funktioniert es schon super.

Das ganze soll jedoch in "einem Schritt" machbar sein, sprich ich möchte mich nicht mit Telnet verbinden, und ich möchte mich auch nicht über die Fernwartung (d.h. über die Fritzbox-Oberfläche) durchklicken müssen.

Hat da jemand eine Idee?

Viele Grüße,
Markus
 
Mit einem kleinen Command-Line-Tool und batch-datei. Von außen geht das aber nicht, da ich keine Portfreigabe mit einem Broadcast für einen Port einrichten kann.

Ist es möglich, den ehttherwake-aufruf mit bestimmten Parametern beim Aufruf einer URL zu automatisieren?
 
Dir ist schon bewusst, dass das dann jeder kann, der deine Adresse kennt?
 
Wenn Du einen dropbear auf der Fritz!Box installieren magst, hilft Dir das Kommandozeilentool plink (z.B. für Windows) weiter. Damit kannst Du Dich automatisiert per SSH auf der Fritz!Box einloggen, einen Befehl ausführen lassen, Dich wieder ausloggen.


Gruß,
Wichard
 
Ich würde einfach gerne beim Aufruf von z.B.:http://meinename.no.ip.org:8080/wake.htm den Rechner wecken lassen

Hallo,

ich mache so was indem ich das AVM-cgi-Script "system_status" auf ein eigenes cgi-Script umleite. Dann kann ich es mit Parameter aufrufen und damit tun und lassen was ich will. Wird kein (bekannter) Parameter angegeben, wird das Original-CGI-Script aufgerufen. Das funktioniert vom internen Netz und - abgesichert - auch über die Fernwartung:
http://fritz.box/cgi-bin/system_status?wol=192.168.1.20
https://dyndns/cgi-bin/system_status?wol=192.168.1.20

Im Anhang habe ich ein Beispiel für ether-wake erstellt, einfach auf einen angeschlossenen USB-Stick kopieren, verstehen und ggf. anpassen/ändern (!) und dann ./start ausführen.

Gruss, Reiner
 

Anhänge

  • my_cmd.zip
    693 Bytes · Aufrufe: 182
Vielen vielen vielen Dank! Genau das habe ich gesucht!!! :)

Allerdings habe ich noch eine Frage: ich habe das Script noch etwas angepasst, und wenn ich es mit telnet einmal aufrufe, funktioniert auch alles. Wie kann ich die FritzBox nun dazu bringen, dass es beim Start automatisch aufgerufen wird? Ich habe folgende Zeile in die debug.cfg geschrieben:

/var/media/ftp/<hier-der-name-von-meinem-stick>/start

Wenn ich das eben mit telnet starte, klappts...
 
Zuletzt bearbeitet:
Jap, habs probiert, und es bleibt eben die "alte" system_status erhalten. Gibt es ne möglichkeit, da irgendwie drauf zu warten, ohne den weiteren Bootvorgang zu blocken?
 
Hallo Markus19.
aufgerufen wird? Ich habe folgende Zeile in die debug.cfg geschrieben...
Wenn ich das eben mit telnet starte, klappts...
Probier es bitte mal so:
Code:
# # # # # Warten bis USB-Stick gemountet ist
max=5
i=0
while [ $i -lt $max ]; do
	if mount | grep " on /var/media/ftp/" > /dev/null; then
		break
        fi
        let i=$i+1
        sleep 10
done

USBSTICK=$(mount | grep /var/media/ftp/ | sed -e "s|^.*ftp/||g" -e "s/ .*$//")
#
# # # # # ENDE USB-Stick Warteschleife

# # # # # WOL ausführen
./var/media/ftp/$USBSTICK/start
#
# # # # # ENDE WOL ausführen

Joe
 
Hi, ich lasse die Datei jetzt doch von der debug.cfg erzeugen, dann brauche ich schon keinen USB-Stick, und die Warte-Geschichte entfällt. Das Ganze klappt jetzt wunderbar :)

Meine debug.cfg poste ich nachher noch hier...
 
So, sorry für die Verspätung. Hier nun endlich meine debug.cfg:

Code:
#! /bin/sh

CUSTOM_COMMANDS_PATH=/var/custom_commands
FILENAME=$CUSTOM_COMMANDS_PATH/custom_commands_cgi

mkdir $CUSTOM_COMMANDS_PATH

echo "#! /bin/sh" > $FILENAME
echo "" >> $FILENAME
echo "path=$CUSTOM_COMMANDS_PATH" >> $FILENAME
echo "orgcmd=\$path/system_status" >> $FILENAME
echo "" >> $FILENAME
echo "# get Parameter (\$cmd+\$par) z.B. wol=192.168.1.123" >> $FILENAME
echo "cmd=\$(echo \$QUERY_STRING | sed -n \"s/\\(.*\\)=\\(.*\\)/\\\\1/p\")" >> $FILENAME
echo "par=\$(echo \$QUERY_STRING | sed -n \"s/\\(.*\\)=\\(.*\\)/\\\\2/p\")" >> $FILENAME
echo "" >> $FILENAME
echo "# echo \"QS: \$QUERY_STRING, function: \$cmd, param: \$par\" >>\$path/param" >> $FILENAME
echo "" >> $FILENAME
echo "if [ \$cmd = \"wol\" ]; then" >> $FILENAME
echo "  " >> $FILENAME
echo "  # get mac from multid.leases" >> $FILENAME
echo "  set -- \$(grep \$par </var/flash/multid.leases) >/dev/null" >> $FILENAME
echo "  if [ \$? = 0 ]; then" >> $FILENAME
echo "    mac=\$2" >> $FILENAME
echo "  else" >> $FILENAME
echo "    mac=\$par " >> $FILENAME
echo "  fi" >> $FILENAME
echo "  " >> $FILENAME
echo "  # call ether-wake" >> $FILENAME
echo "  ether-wake \$mac >\$path/output" >> $FILENAME
echo "  " >> $FILENAME
echo "  echo \"Content-type: text/html\"" >> $FILENAME
echo "  echo \"\"" >> $FILENAME
echo "  echo \"<html><body>Der Wake-Befehl wurde an die Mac-Adresse \$mac gesendet.<br><br>\"" >> $FILENAME
echo "  echo \"<a href=http://meinedyndns.no-ip.org>Zur Weboberflaeche...</a></body></html>\"" >> $FILENAME
echo "  echo \"\"" >> $FILENAME
echo "  " >> $FILENAME
echo "  exit" >> $FILENAME
echo "fi " >> $FILENAME
echo "" >> $FILENAME
echo "\$orgcmd" >> $FILENAME

chmod +x $FILENAME

cp /usr/bin/system_status $CUSTOM_COMMANDS_PATH

mount -o bind $CUSTOM_COMMANDS_PATH/custom_commands_cgi /usr/www/avm/cgi-bin/system_status
 
Noch ein Tip, wie man das Ganze übersichtlicher gestalten kann:
Code:
cat > $FILENAME << 'EOF'
#! /bin/sh

path=$CUSTOM_COMMANDS_PATH
...
EOF
 
Hallo Reiner,

das Script sieht gut aus :)
Ich habe es auf einen USB-Stick kopiert und in die Fritz 7170 gesteckt.
Wie führe ich nun den WOL konkret aus, ich würde es gerne mit der URL starten wollen; Du schreibst ./start ???

Vielen Dank im voraus!
 
Hallo zusammen,

leider hat sich hier noch keiner zurückgemeldet, das Thema ist aber sicher von allg. Interesse (wenn man so in zahlreichen Foren stöbert).
"Reiner" scheint eine Lösung parat zu haben, mir ist aber noch nicht ganz klar, wie der Aufruf stattfindet, wo die Skripts liegen und wie diese ggf. zu editieren sind?!? Bitte um Hilfe!

Vielen Dank und Gruß
 
Hallo,

ich stehe genau vor dem gleichem Problem. Könnt ihr bitte eine eins zu eins Anleitung geben wie ich das machen kann. Wäre dies dann auch auf einer 7050 zu realisieren?

Bitte um hilfe.

mfg


Nichtswisser
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,004
Beiträge
2,244,320
Mitglieder
373,392
Neuestes Mitglied
lukaskr07
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.