Wake on LAN per CGI-Script aus dem Webmenu der FBF

martian

Mitglied
Mitglied seit
26 Mai 2005
Beiträge
273
Punkte für Reaktionen
0
Punkte
0
Hey, ich würde gernen meinen PC aus dem Internet per WOL aufwecken, und ich denke da bin ich nicht der einzige...
Sich jedesmal per telnet etc einzuloggen und dann manuell "etherwake" zu starten ist schon sehr umständlich und zeitraubend, daher sollte sich das doch per script automatisieren lassen und über das Webinterface starten lassen, oder?

Ich weiss, dass das schonmal diskutiert wurde, aber der thread ist jetzt leider veraltet.
Ich nehme hier zu folgenden Threads Bezug:

http://www.ip-phone-forum.de/forum/viewtopic.php?t=10646&highlight=wol
&
http://www.ip-phone-forum.de/forum/viewtopic.php?t=10406&highlight=wol

Soo, ich würde nun auch gern dieses CGI-Script:

Code:
 #! /bin/sh
MAC=00:11:22:33:44:55
etherwake $MAC
echo -e "Content-type: text/html; charset=iso-8859-1\n\n"
echo -e "<html><body>\c"
echo -e "etherwake ausgefuehrt nach $MAC"
echo -e "</body></html>\n"

auf der FB ablegen und das per Aufruf einer URL (http://fritz.box/wol/ wäre wünschenswert) starten.
Ist das technisch jetzt möglich und könnte man dann in der html-seite noch die MAC-Adresse eingeben bzw diese speichern lassen oder eine Auswahlmöglichkeit zwischen mehreren MACs anbieten?
Leider bin ich (noch) nicht soweit das selber durchzuführen, könnte mir vielleicht jemand so etwas zusammenstellen und dann am besten per fake-firmware zum einspielen in die Fritzbox hier reinstellen?

Vielen Dank im Voraus, ich bin sicher diese Lösung würde nicht nur mich glücklich machen =) !
 
Geht das nicht schn mit dem Callmonitor und einem Anruf?
Bei Anruf WakeOnLAN.
 
Öhh, wie mit dem Callmonitor? Meinst du das Windows-Programm? Also das Programm habe ich, aber das läuft ja logischerweise nur wenn der Rechner an ist, außerdem gibts bei mir da in Version 0.91 keine Funktion für WOL, da gibs sowieso nur Einstellungen zur Vorwahl etc oder hab ich da was verpasst!
Also wenn mein PC läuft muss ich ihn ja nicht aufwecken, ich will WOL natürlich nutzen wenn ich NICHT Zuhause bin und so den Rechner aufwecken.
Remote Management klappt ja mit dem Trick Port forwarding auf 2. IP (glaube das war 192.168.168.179 oder so) von der Fritz, so kann ich auf z.B. Port 8080 unter meinem dyndns account in die fritz und würde jetzt liebend gerne von dort aus per script ein WOL-Paket an meinen Rechner schicken...
 
Hi.
Da man nicht einfach was im Dateisystem der FritzBox ablegen kann, müsstest du dir zuerst mal einen eigene Firmware bauen.
Und zwar mit dem buildroot von Enrik. Dafür brauchst du Linux.
Dann sehen wir weiter. :)
Link

Du kannst dann unter /var/tmp ein Skript test.cgi anlegen, dass du während des Betriebs ändern kannst.
Da kann man dann ein bißchen Spielen...

MfG Oliver
 
Klingt ja alles schön und gut... Leider bin ich (noch) nicht so der Linux-Crack und kann mir selber keinen Kernel bauen (ist ja auch nicht unbedingt für Anfänger zu empfehlen :))...
Und wie kann ich das Script dann von der Weboberfläche heraus aufrufen?
Das Script habe ich ja nicht selbst erfunden sondern nur aus einem früheren thread übernommen, wo jemand das reingestellt hatte...
Wie ich gelesen habe müssen Scripte unter "/usr/www/[OEM]/cgi-bin" erstellt werden, damit sie aus dem Webinterface heraus aufgerufen werden können
.
Also ich bräuchte leider noch ein bisschen mehr Hilfestellung, vielleicht reizt es ja den einen oder anderen Fortgeschrittenen auf diesem Gebiet das mal zu implementieren & zu testen

Ich stehe natürlich gerne für einen Test des Scripts zur Verfügung, soweit ich es denn auf die box bringen kann und ausführen kann... :wink:
 
hmm, hat denn keiner hier ne ahnung von sowas und lust sich daran zu versuchen? :?
oder zumindest einen ansatz bringen: meint ihr denn, dass das alles technisch möglich wäre? d.h. das etherwake per script aufgerufen werden kann, und ihm dabei eine MAC-Adresse übergeben wird?
und dass der speicher der box für diesen kleinen mod ausreichen würde?

:idea: alternativ könnte man ja einfach mit einem mod in dieser datei mit dem port forwarding und so einen broadcast and das ganze subnetz der fritzbox vom protokoll UDP auf port 9 etablieren bzw wenn broadcast nicht geht eben an jede IP einzeln, sind ja "nur" 254 :) ?!

bitte schreibt mal was ihr denkt... grüße martian :roll:
 
Kann ich mit dem Buildroot auch eine existierende Firmware verändern, oder muss ich komplett "from scratch" beginnen und mir alles wichtige zusammensuchen?

Sonst könnte ich ja als "Basis" den -mod 0.57 der 8.03.53 nehmen (für die Fon Wlan) und da dann entsprechend das CGI-Script in den "/usr/www/avm/cgi-bin" Ordner tun, zusammen mit ner kopie von etherwake...

Passt das dann?

martian
 
Hi.
Du kannst deine mod-0.57 Firmware nehmen und unter LINUX entpacken.
Code:
tar xf FritzBox.image
cd var/tmp
mkdir fs
dumpsquashfs -x -f filesystem.image -C fs
cd fs/usr/www/avm/cgi-bin
ln -s /var/tmp/test.cgi test.cgi
cd ../../../../..
mksquashfs fs/ filesystem.tmp -noappend -root-owned -b 16384
rm -R filesystem.image fs/
mv filesystem.tmp filesystem.image
cd ../..
tar cf etherwak.image var/
Oder so ähnlich... ;-)
Etherwake ist im mod-0.57 schon drin, oder?
Jetzt kannst du auf der Box, wenn sie wieder läuft, die Datei erstellen.
Code:
vi /var/tmp/test.cgi
#! /bin/sh
etherwake 00:11:22:33:44:55
Aufrufen kannst du dein Skript mit http://192.168.178.1/cgi-bin/test.cgi
Kannst das Skript natürlich auch gleich ins squashfs machen,
aber zum experimentieren ist es mit dem Link vielleicht erst mal besser.
Für mehrere IP's kannst du ja verschieden Skripte machen.

MfG Oliver
 

Anhänge

  • tools.zip
    42.2 KB · Aufrufe: 164
Also, hab das mal ausprobiert, und auch wie geplant das etherwak.image erhalten. wenn ich das jetzt aber per fw-update über das webinterface einspielen will klappt da irgendwas nicht, die Info-LED blinkt ne weile aber nach 5 min hab ich dann den stecker gezogen, aber anstatt das die box hinüber ist ist weiterhin die alte fw drauf...
Und Aufrufen lässt es sich dementsprechend auch nicht.

und nochwas: gibts ne möglichkeit mit html/php oder so das cgi-script so anzupassen das er nach ner mac-id fragt und halt son eingabefenster dazu anbietet und dann, "auf knopfdruck" ein Magic-Packet an die Mac im Subnetz der fritz schickt?

Ich weiss nicht was ich falsch gemacht hab, könnte einer von euch das vll auchmal probieren und dann die sourcen (filesystem.image & co) hier reinstellen?

Mfg martian
 
Hi.
Guck mal in das File install, welches nach dem Auspacken der Firmware in /var ist.
Da gibt es irgendwo ein Abschnitt mit einer Checksummenüberprüfung.
Da musst du die Zeile mit dem exit entfernen.
Oder gleich den ganzen Abschnitt. Hatte ich gestern vergessen ;-)
Code:
##################################################################################
# firmware Files pruefen
##################################################################################
if [ -f /var/tmp/filesystem.image ] ; then
    if ! /var/chksum /var/tmp/filesystem.image ; then
        echo "chksum for file /var/tmp/filesystem.image failed."
        echo "set INFO led to off (modul=7, state=1)"
        echo 7,1>${LED_DEVICE}
        exit $INSTALL_FILESYSTEM_CHECKSUM
    fi
    echo chksum for file /var/tmp/filesystem.image ok
fi
if [ -f /var/tmp/kernel.image ] ; then
    if ! /var/chksum /var/tmp/kernel.image ; then
        echo "chksum for file /var/tmp/kernel.image failed."
        echo "set INFO led to off (modul=7, state=1)"
        echo 7,1>${LED_DEVICE}
        exit $INSTALL_KERNEL_CHECKSUM
    fi
    echo chksum for file /var/tmp/kernel.image ok
fi
Und wie gesagt, ich denke es ist einfacher, wenn du dir für jede MAC ein eigenes Skript machst...

MfG Oliver
 
martian schrieb:
Öhh, wie mit dem Callmonitor? Meinst du das Windows-Programm? Also das Programm habe ich, aber das läuft ja logischerweise nur wenn der Rechner an ist, außerdem gibts bei mir da in Version 0.91 keine Funktion für WOL, da gibs sowieso nur Einstellungen zur Vorwahl etc oder hab ich da was verpasst!

War bloed ausgedrueckt von mir. Es gibt im mod.57 ein Script das heisst callmonitor.sh. Das kann man so configurieren, dass die Box beim Anruf auf eine betsimmte Nummer ein etherwake absetzt. Damit kannst du per Telefonanruf einen Rechner aufwecken.

Siehe http://www.wehavemorefun.de/fritzbox/Features_und_Bilder_zu_Modifikationen
 
callmonitor.sh oder doch web oberfläche probieren?

Okay, das mit dem callmonitor.sh verstehe ich, allerdings komme ich bei der Konfiguration nicht weiter, ich habe da noch ein paar Fragen :?: :
bei mir hängt die box an nem analogen anschluss, d.h. ich hab nur eine rufnr im festnetz und bisher auch nur eine SIP-Nr, die mir 1und1 nämlich auf meiner Festnetznr eingerichtet hat. Ist das WOL per Anruf (über anruferkennung) nun auch über eine spezielle SIP-Nummer zu starten, die ich mir dafür einrichte, oder geht das nur mit festnetznummern?
und in welchen dateien muss ich meine zu weckende MAC-Adresse ablegen und wo die SIP(MSN)-Nummer?

Ansonsten wäre das Web-script aber vielleicht doch praktischer, auch wenn ich es leider nicht hinbekomme... :eek:

wollt ihr es nicht mal für mich versuchen? 8)

Mfg martian
 
hmm, scheint ja leider keiner bereit dazu... bin ich denn auf einmal der einzige in diesem forum, den ein WOL-feature glücklich machen würde?
 
Mich würde das auch glücklich machen... Hat sich hier schon was ergeben?
 
schade, schade... sieht so aus als können wir unseren wunsch vom wake-on-lan vergessen. ich schaffs einfach nicht und jemand der es für uns anfänger macht bzw mal ne schritt-für-schritt anleitung bastelt gibs nicht :?
 
Re

So also es hat ja jemand schon mal bei mir angefragt zwecks Etherwake und co hatte aber bis heute noch Prüfungen deswegen keine Zeit gehabt.

Wenns jetzt noch benötigt wird dann könnte ich mal schaun das ich was bastle, wills noch jemand?

Da ich schon ne Weile nix mehr mit der FB gemacht hab brauch ich nochmal ein paar Infos:

1.) Den Webserver von der FB kann ich ja so nicht benutzen oder???
also ich meine ich kann da nicht ohne weiteres per telnet drauf und dann in das root verzeichnis von dem meine Skripte reinlegen (hatte ja damals nen http-Server kompiliert weiß es nur nicht mehr)

2.) Das Firmwareimage zu verändern hab ich eigentlich keine Lust, müsste man dann ja jedes mal wieder abändern wenn wenn ne neue Firmwareversion raus kommt (oder seh ich das falsch). Also deshalb gabs da doch so nen trick das man ein Pseudoimage hochläd das nur eine Datei enthält und die dann grad auch den Telnetzugang freischaltet. Konnte man da nicht Befehle reinschreiben?

3.)Mein Vorschlag wäre: Ganz normale Firmware einspielen, dann gerade so ein Skript basteln das man auch per Firmwareupdate hochläd und dieses skript läd dann von nem Webserver im Internet alle benötigten Dateien also das etherwake, den Webserver für die CGI-unterstützung und ein CGI-skript um drauf zuzugreifen.

Jetzt brauch ich aber erst mal von euch die Infos ob das noch so alles stimmt wie ich das gedacht hab?

Wenn ja, sag ich mal is das ned sooo wild das Ganze hinzubekommen, den Webserver hab ich, sourcen zu etherwake gibts bestimmt irgendwo (oder hat die nicht schon jemand für die FB kompiliert?) und dann is es ja nurnoch das CGI und das startscript zu schreiben.

Naja

Gruß

Maruu
 
Also, etherwake gibts schon für die FBF, zu finden in dem mod 0.57, müsste hier im Forum zu finden sein, ansonsten kann ich auch bei bedarf noch mal stöbern und das auf meinen webspace laden...
Auch das CGI-Script gibts eigentlich schon (hab aber keine Ahnung ob das funktioniert...)
Code:
 #! /bin/sh
MAC=00:11:22:33:44:55
etherwake $MAC
echo -e "Content-type: text/html; charset=iso-8859-1\n\n"
echo -e "<html><body>\c"
echo -e "etherwake ausgefuehrt nach $MAC"
echo -e "</body></html>\n"

Wenn du jetzt das alles zu so einer Datei basteln könntest, die man in der FB hochladen kann und man dann unter einer speziellen URL (mein Vorschlag: http://fritz.box/wol.cgi oder nur http://fritz.box/wol) eine MAC-Adresse eingeben kann wäre das einfach einsame Spitze!
Ein anderer Lösungsvorschlag/kleine Zusatzaufgabe wäre, die Möglichkeit Broadcasts ins LAN zu erlauben, momentan lässt sich in den Portforwarding-regeln keine Weiterleitung auf eine *.*.*.255 einrichten.

Vielen Dank schonmal im Voraus, das du dich darüm kümmerst!
Leider ist jetzt meine Zeit gekommen und ich werde bis Anfang August im Prüfungsstress versinken, schaue aber zwischendurch mal rein...
Vlg martian
 
Hi.
[s:56ba33ecbd]Ohne die Firmware zu modden kann man definitiv kein cgi-Skript über den websrv der Fritz aufrufen => eigener thttpd auf einem anderen Port...[/s:56ba33ecbd]
Die Skripte des AVM-httpd werden so aufgerufen:
http://fritz.box/cgi-bin/system_status

MfG Oliver
 
olistudent schrieb:
Ohne die Firmware zu modden kann man definitiv kein cgi-Skript über den websrv der Fritz aufrufen
Sag niemals nie. :)
Folgendes Skript legt zwei Beispieldateien an, ein CGI-Skript und eine normale HTML-Seite, die dann ganz normal über den Webserver aufgerufen werden können; URLs siehe unten. (Das Web-Interface der Box funktioniert natürlich nach wie vor.)
Code:
#!/bin/sh
cd /var
mkdir -p html.new/cgi-bin
cp -d html/index.html html/html html.new
for script in html/cgi-bin/*; do
  ln -s ../../html.orig/cgi-bin/$(basename $script) html.new/cgi-bin
done
mv html html.orig
mv html.new html

# sample HTML page: http://fritz.box/hello/world.html
mkdir html/hello
echo '<html><body>Hello, world!</body></html>' > html/hello/world.html

# sample CGI program: http://fritz.box/cgi-bin/hello?Fritz
cat > html/cgi-bin/hello <<'END'
#!/bin/sh
echo -e "Content-Type: text/plain\n\n"
echo Hello, ${QUERY_STRING:-world}! This is your environment:
set
END
chmod +x html/cgi-bin/hello
Die Idee/der Trick dahinter: Das Root-Verzeichnis des Webservers ist /usr/www/html; das ist aber ein symbolischer Link nach /var/html. Von /var/html zeigt dann im Normalfall ein weiterer Link zurück nach /usr/www/<OEM>/. Da /var/html im beschreibbaren Bereich des Dateisystems liegt, kann man sich einfach dazwischenklinken.
 
Ja, die hatten das irgendwann mal eingeführt mit dem Link, war nicht von Anfang an. Wahrscheinlich benutzen die bei AVM das für ihre Tests...
Irgendwie geht bei mir die Zeile mit dem QUERY_STRING aber nicht! Da kommt dann nur eine leere Datei.

MfG Oliver

edit: So siehts dann doch richtig gut aus! Da kann man ja sogar mit einem Skript verschiedene Rechner wecken. 8)
Oder gleich über eine eigene Webpage!
Code:
#! /bin/sh
echo 'Content-type: text/html'
echo
echo '<html>'
echo '<head>'
echo '<title>Environment</title>'
echo '</head>'
echo '<body>'
echo angekommen ist: `echo $QUERY_STRING|sed -e 's/\&/\&amp;/g' -e 's/</\&lt;/g'
echo '<h1>Environment</h1>'
set|sed -e 's/\&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' -e 's/$/
/'
echo '</body>'
echo '</html>'
 
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.