HixC
Anmeldungsdatum: 24. Mai 2008
Beiträge: 51
|
Hi Leute,
habe hier ein script um eine neue IP zu bekommen. Unter Windows läuft das gut und jetzt versuch ich es auch unter Ubuntu zum laufen zu bekommen, um es dann mit dem jdownloader auszuführen. Hier die Windows batch:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | @echo off & SETLOCAL
rem - Warmstart Kabel Modem WebSTAR EPX (DPX, DPC, EPC) 2203
curl -d "SADownStartingFrequency=594000000" http://192.168.100.1/goform/gscan
rem Zufallsgenerator für Mac6
set /a zufall=%random% %% 99
if %zufall% LSS 10 set /a zufall=%zufall%+27
rem Zuweisung einer neues Mac Adresse
curl "http://192.168.0.1/login.php" -d "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=xxxx&login=Anmelden&VER_CODE="
curl "http://192.168.0.1/bsc_wan.php" -d "ACTION_POST=DHCP&hostname=DIR-300&clonemac=00%%3A26%%3A5a%%3A38%%3A5f%%3A%zufall%"
curl "http://192.168.0.1/bsc_wan.xgi?random_num=2011.7.13.6.35.1&exeshell=submit%%20COMMIT&exeshell= submit%%20WAN"
PAUSE
ENDLOCAL
|
curl habe ich für Ubuntu schon installiert und das scheint auch zu funktionieren. für die zufallsvariable hab ich an so was gedacht:
|
#!/bin/sh
zufall=$(($RANDOM % 100))
exit 0
|
bekomme aber beim ausführen diesen fehler: arithmetic expression: expecting primary: " % 100" Also ist mein eines Problem diese Zufallszahl zu erzeugen und das andere diese korrekt in diese Zeile einzubinden: | curl "http://192.168.0.1/bsc_wan.php" -d "ACTION_POST=DHCP&hostname=DIR-300&clonemac=00%%3A26%%3A5a%%3A38%%3A5f%%3A%zufall%"
|
thx for helping 😀
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
bekomme aber beim ausführen diesen fehler:
Nimm mal nicht /bin/sh sondern /bin/bash
... und das andere diese korrekt in diese Zeile einzubinden:
statt %zufall% nimm $zufall
|
HixC
(Themenstarter)
Anmeldungsdatum: 24. Mai 2008
Beiträge: 51
|
Das hat schon mal geholfen! Ich bekomme dennoch keine neue IP. die Zahl darf nicht einstellig sein, daher wollte ich das so lösen:
| if [ $zufall -lt 10 ];
then $zufall=$zufall+27
fi
|
bekomme aber diesen Fehler:
./reconnect.sh: Zeile 8: -lt: Einstelliger (unärer) Operator erwartet. Das Skript sieht dann so aus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | #!/bin/bash
curl -d "SADownStartingFrequency=594000000" http://192.168.100.1/goform/gscan
echo zufall=$(($RANDOM % 100))
if [ $zufall -lt 10 ];
then $zufall=$zufall+27
fi
curl "http://192.168.0.1/login.php" -d "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=xxxx&login=Anmelden&VER_CODE="
curl "http://192.168.0.1/bsc_wan.php" -d "ACTION_POST=DHCP&hostname=DIR-300&clonemac=00%%3A26%%3A5a%%3A38%%3A5f%%3A$zufall"
curl "http://192.168.0.1/bsc_wan.xgi?random_num=2011.7.13.6.35.1&exeshell=submit%%20COMMIT&exeshell= submit%%20WAN"
exit 0
|
keine Ahnung, ob curl das macht, was es soll... :/
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
versuchs mal so
| if [ $zufall -lt 10 ]; then
zufall=$(($zufall+27))
fi
|
|
riffraff
Anmeldungsdatum: 1. Oktober 2006
Beiträge: 486
Wohnort: Im kühlen Norden
|
Ich verstehe zwar nicht wofür da eine Zufallszahl benötigt wird ☺, wollte aber mal loswerden wie man eine zufaellige Zahl zwischen zwei Werten erzeugen kann. |
hoechste=150
niedrigste=10
newrand=$[ ( $RANDOM % ( $[ $hoechste - $niedrigste ] + 1 ) ) + $niedrigste ]
echo "Neue Zufallszahl ist $newrand"
|
Damit koennte man auch den Mindestwert angeben und einen Maximalwert. Die Zufallszahl liegt dann halt immer dazwischen irgendwo. Im Bsp. zwischen 10 und 150.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17625
Wohnort: Berlin
|
Was er sagen will, ist:
| zufall=$((RANDOM % 90+10))
|
erzeugt eine 2-stellige Zufallszahl von 10-99 incl.
|
HixC
(Themenstarter)
Anmeldungsdatum: 24. Mai 2008
Beiträge: 51
|
die if abfrage will einfach nicht funktionieren... bekomme weiterhin diesen fehler! Aber die Version von riffraff klappt ☺ @riffraff die Zahl wird benötigt um die letzte Stelle der MAC-Adresse des Routers zu ändern, damit das Modem nach dem restart einen "neuen" Router sieht und eine neue IP anfordert ☺
klar, man könnte auch immer zwischen zwei Zahlen wechseln oder so... Das skript läuft nun, leider bekomme ich immernoch keine neue IP. hmm muss wohl was mit curl zu tun haben. Der Modem restart scheint zu klappen, aber der Router bekommt keine neue MAC... achso, wie kann ich denn die Ausgabe im terminal in eine datei pipen?
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
Da im Batch von Windows Variablen mit % angesprochen wird muss das %-Zeichen bei der Übergabe maskiert werden, das geschieht durch %%, ersetze also in allen curl Aufrufe die %% durch ein einfaches %.
achso, wie kann ich denn die Ausgabe im terminal in eine datei pipen?
Einfach mit einer Pipe > eine doppelte Pipe >> hängt die Ausgabe an eine bestehende Datei an.
|
HixC
(Themenstarter)
Anmeldungsdatum: 24. Mai 2008
Beiträge: 51
|
DiBo33 schrieb: Da im Batch von Windows Variablen mit % angesprochen wird muss das %-Zeichen bei der Übergabe maskiert werden, das geschieht durch %%, ersetze also in allen curl Aufrufe die %% durch ein einfaches %.
Ja, das hat funktioniert!
achso, wie kann ich denn die Ausgabe im terminal in eine datei pipen?
Einfach mit einer Pipe > eine doppelte Pipe >> hängt die Ausgabe an eine bestehende Datei an.
also mit der doppelpipe hat nicht das so nicht funktioniert: | ./reconnect.sh || test.txt
|
aber so gehts auch | ./reconnect.sh | tee test.txt
|
Hier noch das komplette Skript, funktioniert überings für den DIR-300 und das Atlanta Modem 2203
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | #!/bin/bash
curl -d "SADownStartingFrequency=594000000" http://192.168.100.1/goform/gscan
hoechste=99
niedrigste=10
newrand=$[ ( $RANDOM % ( $[ $hoechste - $niedrigste ] + 1 ) ) + $niedrigste ]
echo "Neue Zufallszahl ist $newrand"
curl "http://192.168.0.1/login.php" -d "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=XXXX&login=Anmelden&VER_CODE="
curl "http://192.168.0.1/bsc_wan.php" -d "ACTION_POST=DHCP&hostname=DIR-300&clonemac=00%3A26%3A5a%3A38%3A5f%3A$newrand"
curl "http://192.168.0.1/bsc_wan.xgi?random_num=2011.7.13.6.35.1&exeshell=submit%20COMMIT&exeshell= submit%20WAN"
exit 0
|
Vielen Dank an alle!!!
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
also mit der doppelpipe hat nicht das so nicht funktioniert:
öhm: >> != || 😀
|
HixC
(Themenstarter)
Anmeldungsdatum: 24. Mai 2008
Beiträge: 51
|
Achso, kannte bisher nur das | als Pipe ☺
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17625
Wohnort: Berlin
|
man bash sagt allerdings auch:
Pipelines
A pipeline is a sequence of one or more commands separated by one of the control operators | or |&. The format for
a pipeline is: [time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]
Für die Umlenkungen < oder > habe ich noch nie 'Pipe' gehört oder gelesen.
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
Naja, richtig ist wohl der Terminus Redirection (ist mir nur in dem Moment nicht eingefallen), man möge mir verzeihen 😀
|
Capet
Anmeldungsdatum: 27. März 2009
Beiträge: 429
|
Lass mich mal raten: Das Skript bzw. die Funktionalität ist für die Verwendung mit jDownloader bestimmt?
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
Capet schrieb: Lass mich mal raten: Das Skript bzw. die Funktionalität ist für die Verwendung mit jDownloader bestimmt?
öhm: ... um es dann mit dem jdownloader auszuführen.
|