- Mitglied seit
- 22 Jul 2005
- Beiträge
- 112
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo
ich habe einen Router (Software mit PC) na jedenfalls mache ich den nachts immer aus, da der mir zu laut ist, und wollte jetzt nen skript programmieren, dass wenn der rechner aus is die box sich einwählt.
Die Box hängt mit dem Router und dsl Modem an einem Hub an lan A.
Es ist eingestellt bei Anschluss "Internetzugang über LAN A" im Menu Internet und dann Zugangsdaten. Bei Betriebsmodi ist " Internetverbindung selbst aufbauen (NAT-Router mit PPPoE oder IP)" eingestellt. Unter Zugangsdaten ist eingestellt "Zugangsdaten werden nicht benötigt (IP)" wenn der Router an ist, d.h. es geht kein Traffic über die Box, diese einstellung habe ich nur gewählt, dass sich die box nicht immer versucht einzuwählen. Falls der Router nicht an sein sollte soll dort "Zugangsdaten werden benötigt (PPPoE)" ausgewählt werden.
So das war erstmal die Beschreibung meines Vorhabens, nun zu dem Code, da ich mit der Programmierung nicht so firm bin.
Es gibt dabei 3 Probleme die ich habe:
1. Status des Rechners überprüfen, möglich mit Ping? Edit: ja
2. Überprüfen was gerade eingestellt ist, damit die der Befehl zum Ändern nur ausgeführt wird wenn etwas zu ändern ist.
3. "Zugangsdaten" ändern.
Ich hatte hier im Forum schon mal eine Nachtschaltung für VOIP gefunden, diese hatte ich schon mal abgeändert, auf eine Überprüfung des VOIP status, dies könnte man dazu wieder adaptieren.
1: Dies werde ich gleich mal probieren ob ich dies hinbekomme.
Edit: Hier eine Möglichkeit, nich die schönste aber funktioniert
2: Code vom Auslesen der Webseite mit dem VOIP Status
Wenn ich richtig bin müsste man nut getpage verändern und die sed zeile. Die neue Zeile mit getpage müsste dann so aussehen:
Leider weis ich nicht wie ich jetzt wie ich den wert auslesen kann ob "Zugangsdaten werden benötigt (PPPoE)" angeklickt ist oder nicht. Habe gerade mal in den Quellcode der Seite geschaut, da blicke ich irgendwie nich so schnell durch.
Edit2: Hier hab ich mal noch am ende des Quelltextes dies gefunde, vielleich ich da eins das gesuchte von ?
3:
Hier müsste man eigentlich nur die Zeile POST_DATA verändern, oder liege ich falsch? Was ich der Funktion übergeben muss, dass bekomm ich dann schon allein heraus.
Würde mich über eure Hilfe freuen, melde mich nochmal falls ich 1. hinbekomme.
Danke schon mal für eure Hilfe.
MFG Matthias
ich habe einen Router (Software mit PC) na jedenfalls mache ich den nachts immer aus, da der mir zu laut ist, und wollte jetzt nen skript programmieren, dass wenn der rechner aus is die box sich einwählt.
Die Box hängt mit dem Router und dsl Modem an einem Hub an lan A.
Es ist eingestellt bei Anschluss "Internetzugang über LAN A" im Menu Internet und dann Zugangsdaten. Bei Betriebsmodi ist " Internetverbindung selbst aufbauen (NAT-Router mit PPPoE oder IP)" eingestellt. Unter Zugangsdaten ist eingestellt "Zugangsdaten werden nicht benötigt (IP)" wenn der Router an ist, d.h. es geht kein Traffic über die Box, diese einstellung habe ich nur gewählt, dass sich die box nicht immer versucht einzuwählen. Falls der Router nicht an sein sollte soll dort "Zugangsdaten werden benötigt (PPPoE)" ausgewählt werden.
So das war erstmal die Beschreibung meines Vorhabens, nun zu dem Code, da ich mit der Programmierung nicht so firm bin.
Es gibt dabei 3 Probleme die ich habe:
1. Status des Rechners überprüfen, möglich mit Ping? Edit: ja
2. Überprüfen was gerade eingestellt ist, damit die der Befehl zum Ändern nur ausgeführt wird wenn etwas zu ändern ist.
3. "Zugangsdaten" ändern.
Ich hatte hier im Forum schon mal eine Nachtschaltung für VOIP gefunden, diese hatte ich schon mal abgeändert, auf eine Überprüfung des VOIP status, dies könnte man dazu wieder adaptieren.
1: Dies werde ich gleich mal probieren ob ich dies hinbekomme.
Edit: Hier eine Möglichkeit, nich die schönste aber funktioniert
Code:
ping -c 1 -q 168.192.0.10 > aa.txt
head -n 4 aa.txt > bb.txt
tail -n 1 bb.txt > aa.txt
read zeile < aa.txt
rm aa.txt
rm bb.txt
echo $zeile
case "$zeile" in
"1 packets transmitted, 1 packets received, 0% packet loss")
echo "a";
;;
"1 packets transmitted, 0 packets received, 100% packet loss")
echo "b";
;;
esac
Code:
ParseWebsite() {
export REQUEST_METHOD="GET"
export REMOTE_ADDR="127.0.0.1"
export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home"
cd /usr/www/html/cgi-bin
./webcm |
sed -n 's/^.*sip:status.sip[0-9].connect.*value="\([0-9]\).*/\1/p'
}
Code:
export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=internet&var:pagename=pppoe&var:activtype=pppoe"
Edit2: Hier hab ich mal noch am ende des Quelltextes dies gefunde, vielleich ich da eins das gesuchte von ?
Code:
<input type="hidden" name="connection0:settings/type" value="pppoe" id="uiPostType">
<input type="hidden" name="connection0:pppoe:settings/idle" value="0" id="uiPostPppIdleTimeout">
<input type="hidden" name="connection0:pppoe:settings/mode" value="lcp" id="uiPostPppMode">
<input type="hidden" name="sar:settings/encapsulation" value="dslencap_ether" id="uiPostEncaps" disabled>
<input type="hidden" name="sar:settings/autodetect" value="1" id="uiPostAutodetect" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/use_dhcp" value="0" id="uiPostSarDhcp" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/ipaddr" value="169.254.1.2" id="uiPostSarAddr" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/netmask" value="255.255.0.0" id="uiPostSarMask" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/gateway" value="169.254.1.6" id="uiPostSarGate" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/dns1" value="217.237.149.225" id="uiPostSarDns0" disabled>
<input type="hidden" name="sar:settings/dslencap_ether/dns2" value="194.25.2.129" id="uiPostSarDns1" disabled>
<input type="hidden" name="box:settings/ata_mode" value="1" id="uiPostAta">
<input type="hidden" name="box:settings/ManualDSLSpeed" value="0" id="uiPostSpeedManu" disabled>
<input type="hidden" name="box:settings/dslbridge_if_routing/activated" value="0" id="uiPostRouterBridge" disabled>
<input type="hidden" name="box:settings/fullbridge/activated" value="0" id="uiPostFullBridge" disabled>
<input type="hidden" name="box:settings/dhcpclient/use_static_dns" value="1" id="uiPostUseDns" disabled>
<input type="hidden" name="interfaces:settings/lan0/dhcpclient" value="0" id="uiPostDhcpc" disabled>
<input type="hidden" name="interfaces:settings/lan0/ipaddr" value="168.192.0.2" id="uiPostIpaddr" disabled>
<input type="hidden" name="interfaces:settings/lan0/netmask" value="255.255.255.0" id="uiPostNetmask" disabled>
<input type="hidden" name="box:settings/gateway" value="168.192.0.1" id="uiPostGateway" disabled>
<input type="hidden" name="box:settings/dns0" value="192.168.180.1" id="uiPostDns0" disabled>
<input type="hidden" name="box:settings/dns1" value="192.168.180.2" id="uiPostDns1" disabled>
<input type="hidden" name="var:lanip" value="" id="uiPostLanIp">
<input type="hidden" name="var:activtype" value="pppoe" id="uiPostActivType">
<input type="hidden" name="var:isFirst" value="0" id="uiIsFirst">
<input type="hidden" name="var:newipaddr" value="" id="uiPostNewIpaddr" disabled>
<input type="hidden" name="var:setAuto" value="" id="uiPostSetAuto">
<input type="hidden" name="var:ifmode" value="modem" id="uiPostIfMode">
3:
Code:
DoIt() {
export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="sip:settings/sip$1/activated=$2"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
}
Würde mich über eure Hilfe freuen, melde mich nochmal falls ich 1. hinbekomme.
Danke schon mal für eure Hilfe.
MFG Matthias
Zuletzt bearbeitet: