[gelöst] wol

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
Hallo,

ist es möglich, in er WOL-Liste nur bestimmte PC's anzeigen zu lassen, und nicht alle die in der hosts-datei stehen?

mfg
 
Zuletzt bearbeitet:
Nur, wenn du selber ein wenig Coden willst.
 
gern, bräucht aber mal nen kleinen denkanstoss wo ich da anfangen muss
 
hier

Du kannst vielleicht anstatt hosts eine eigene config-Datei für wol-cgi nehmen, die man dann vielleicht per einen Hacken aktivieren kann.

Wenn du mit dem Programmieren und Tests fertig bist, kannst du deine Änderungen hier veröffentlichen, dann wird es jemand evtl. in den trunk übernehmen.



Aber wo ist das Problem, dass du alle hosts siehst?


MfG
 
das hatte ich vor, eine eigene datei, in der die hostnamen oder ipadressen drinstehen...

hab mehrere virtuelle rechner, namen von lokalen websiten in der hostsdatei, insgesamt ca. 15 einträge, und nur 2 rechner will ich mit wol aufwecken...
 
Du hast nach einem Denkanstoß gefragt. Ich hab dir darauf im genausten die Stelle gezeigt, wo es meiner Meinung nach abzuändern ist. Du hättest es genau so gut rausfinden können, wenn du selbst in den Sourcen nachgeschaut hättest. Mehr Tipps kann ich dir leider mangels Zeit nicht geben.

Es existieren einige Informationen, wie FREETZ aufgebaut ist, wo die Einstellungen gespeichert werden und wie man eigene Pakete mit Web-Guis bauen kann. Das musst du leider alles selbst erforschen, wenn du die GUI so umbiegen willst, wie ich es vorgeschlagen hatte. Das Gute dabei ist: Du kannst gerne bei anderen Paketen abschauen, wenn du was Ähnliches machen willst.

MfG
 
sorry das ich nochmals so dum frage...also ich hab jetzt ne datei "/etc/wols", darin stehen die rechner die per wol aufgeweckt werden können, in der wol liste (port 82) stehen auch nur die drin, also die änderungen die ich gemacht hab, klappen....jetzt steh ich vor dem problem, das die datei über das webif geändert werden soll, wie bewerkstellige ich das?
 
Dazu suche dich bitte durch die existierenden Webinterfaces, dort wird "alle Nase lang" etwas geändert an Konfigurationsdateien. Anhand derer kannst du dich da durch"beissen".
 
sorry das ich da noch nicht ganz dahintergestiegen bin, hab es für meine box ohe das webif hinbekommen und werde es erstmal so lassen, wenn mir mal die decke auf den kopf fällt, werde ich danach suchen....durch die webifs hab ich mich gewühlt, aber eben noch nicht das passende gefunden...
 
Trotzdem wäre es natürlich schön, wenn Du hier beschreibst, was Du genau gemacht hast. Vielleicht schreibt es dann jemand (oder Du selbst ;)) ins Freetz-Wiki. Und vielleicht wird dann auch einmal ein Paket daraus - mit oder ohne GUI. Ein nützliches HowTo zum Erstellen eines WebGUIs findest Du hier.
 
also ich ne datei "/etc/wols" angelegt und das cgi-Script für die Auswahl des zu weckenden PC angepasst, mehr nich...
 
/etc/wols kann niemals editierbar sein, da sie im schreibgeschützten Teil des Flashs liegt, das weißt du, oder? Denn so kannst du da niemals ein WebIF nutzen, um das zu editieren, da diese Datei _vor_ dem Flashen korrekt im Image landen muss, oder aber "mount -o bind ..." bei jedem Neustart der Box remounted werden muß. Dennoch kannst du mal das online stellen, was du mit Hilfe des Forums hinbekommen hast, denn vielleicht hilft dir sogar wer, da noch was weiteres zu machen.
 
Also cgi geändert an der Stelle, die ich dir empfohlen hatte?

Man könnte irgendwo in GUI einen Schalter anlegen "benutze hosts" und einen Eingabefenster für alternative hosts zum Wecken. Wenn die Anzahl der manuelen wol-hosts überschaubar ist, kann man sie in einer Variable abspeichern. WOL-cgi muss dann angepasst werden.

Als Beispiel kannst du z.B. "Downloader" anschauen. Dort speichere ich mehrere Zeilen in einer Variable. Es wäre für diesen Fall besser, als eine separate config-Seite dafür zu spendieren.

MfG
 
Am Rande: Hat eigentlich schon einmal jemand gesehen, dass AVM in der AiO tatsächlich selber WOL implementiert hat?
 
@hermann72pb. ja genau die:

Code:
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin

cgi_width=560
. /usr/lib/libmodcgi.sh

cgi_begin 'Wake on LAN'

cat << EOF
<p>

$(lang de:"[COLOR=Red]Zugelassene[/COLOR] Hosts" en:"[COLOR=Red]Approved[/COLOR] hosts"):
<select onChange="var s = this.options[this.options.selectedIndex].value; document.wake.mac.value = s.substr(0,s.search(/\*/)); document.wake.interf.value = s.substr(s.search(/\*/)+1); return false;">
<option value="*" selected>$(lang de:"(w&auml;hlen)" en:"(choose)")</option>
EOF

if [ -r /tmp/flash/exhosts ]; then
    egrep -v '^(#|[[:space:]]*$)' /tmp/flash/exhosts |
    while read -r ip mac interface host desc; do
      [COLOR=Red]if grep -q "$host" /etc/wols; then[/COLOR]
        [COLOR=Red]if [ -n "$host" ]; then[/COLOR]
          if [ dhcp-host = "$mac" ]; then
            if [ -n "$host" -a -r /var/tmp/multid.leases ]; then
              mac=`sed "/${host}/!d;s/^lease //;s/ .*//" /var/tmp/multid.leases`
            else
              continue
            fi
          fi
          if [ -n "$mac" -a "$mac" != "*" ]; then
            if [ -n "$interface" -a "$interface" != "*" ]; then
              value="$mac*$interface"
            else
              value="$mac*"
            fi
            echo -n '<option value="'"$value"'">'
            if [ -n "$desc" ]; then
              [ '*' != "$host" ] && echo -n "$host "
              echo -n "$desc"
            elif [ -n "$host" -a "$host" != "*" ]; then
              echo -n "$host"
            else
              echo -n "$mac"
            fi
            echo '</option>'
          fi
[COLOR=Red]        fi
      fi[/COLOR]
    done
fi

cat << EOF
</select>
</p>
<p>$(lang de:"MAC und Netzwerk-Schnittstelle f&uuml;r Etherwake angeben oder einen der [COLOR=Red]zugelassenen[/COLOR] Hosts w&auml;hlen." en:"Fill in a MAC address and a network interface for etherwake or select a [COLOR=Red]approved[/COLOR] host from the drop down list above.")</p>
<form style="padding-top: 10px; padding-bottom: 10px;" name="wake" action="/cgi-bin/wake.cgi" method="post">
<table border="0" cellspacing="1" cellpadding="0">
<tr>
<td width="230">MAC: <input type="text" name="mac" size="17" maxlength="17" value=""></td>
<td width="210">Interface: <select name="interf">
EOF
echo '<option title="tcp" value="tcp">'$interface'</option>'

for INTERFACE in $(ifconfig |grep ^[a-z]|cut -f1 -d ' '); do
    echo '<option title="'$INTERFACE'" value="'$INTERFACE'">'$INTERFACE'</option>'
done

cat << EOF

</select></td>
<td width="100"><input type="submit" value="WakeUp"></td>
</tr>
</table>
</form>
EOF

cgi_end

die roten Zeilen sind neu, die roten Wörter geändert.

Verweist halt im Moment noch auf besagte "/etc/wols/" kann aber geändert werden, darin stehen nur die hostnamen die per wol startfähig sind.

@Silent-Tears: hab ich bemerkt, wollte aber nicht wirklich funktionieren, außerdem will ich meiner freundin ermöglichen unseren server per wol zu starten, da wäre es zuviel sie über das original webif zu schicken...
 
Oh, ist mir gar nicht aufgefallen, tatsächlich? Danke für den Hinweis!

*lach* Schon ok, hab ich auch nur durch Zufall gesehen. Ich war schon am überlegen, was man dafür rauspatchen kann :D
 
Code:
      [COLOR=Red]if grep -q "$host" /etc/wols; then[/COLOR]
        [COLOR=Red]if [ -n "$host" ]; then[/COLOR]

hm, die Idee ist nicht schlecht nach Stichwörtern zu suchen...

Wenn man es so realisiert, kann man es so wie ich vorgeschlagen hatte in eine Variable packen. Dann sollen dort nur die Namen stehen, nicht die volle Zeilen a-la hosts. Dann sollte der anzuhackende Schalter "Hosts für WOL nach Namen filtern" heißen. Dann macht man eben if nach diesem Schalter und durchforstet die Variable anstatt /etc/wols, aber mit doppelten Ausführungszeichen...

Würdest du es realisieren?

MfG
 
es stehen auch nur die namen drin, den rest nimmt er aus der exhosts datei....wie meinst du das mit einer variablen?
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,696
Beiträge
2,216,700
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
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.