[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:

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Nur, wenn du selber ein wenig Coden willst.
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
gern, bräucht aber mal nen kleinen denkanstoss wo ich da anfangen muss
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,618
Punkte für Reaktionen
2
Punkte
38
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
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
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...
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,618
Punkte für Reaktionen
2
Punkte
38
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
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
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?
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
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".
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
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...
 

ao

Aktives Mitglied
Mitglied seit
15 Aug 2005
Beiträge
2,084
Punkte für Reaktionen
0
Punkte
36
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.
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
also ich ne datei "/etc/wols" angelegt und das cgi-Script für die Auswahl des zu weckenden PC angepasst, mehr nich...
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
/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.
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,618
Punkte für Reaktionen
2
Punkte
38
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
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Am Rande: Hat eigentlich schon einmal jemand gesehen, dass AVM in der AiO tatsächlich selber WOL implementiert hat?
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
@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...
 

ao

Aktives Mitglied
Mitglied seit
15 Aug 2005
Beiträge
2,084
Punkte für Reaktionen
0
Punkte
36

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
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
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,618
Punkte für Reaktionen
2
Punkte
38
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
 

astrapi

Mitglied
Mitglied seit
27 Mai 2005
Beiträge
341
Punkte für Reaktionen
0
Punkte
0
es stehen auch nur die namen drin, den rest nimmt er aus der exhosts datei....wie meinst du das mit einer variablen?
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,614
Beiträge
2,024,757
Mitglieder
350,459
Neuestes Mitglied
Hapee