Fritz!Load - (Oneclickhoster-) Down- und Uploads via FB

Hallo Fireball,

zuerst mal zum Verstädnis:
>Bei der 7170 funktioniert die Sache noch.
>Bei der 7240 (WDS Repeater) stimmts nicht mehr.
Seit der Firmware xx.04.76 gibt es ein neues Loginverfahren. Welche Firmwareversion ist auf der 7170?

Die SID wird beim neuen Loginverfahren benötigt. Die Sid wird von der Fritzbox geniert.

Ich hab mir mal den Code auf die Schnelle angeschaut und vermute eher das Problem liegt in der funktion login() (lib\reconnect.sh).
Dort wird die sid von der Fritzbox geholt und als cgisid gespeichert. Allerdings wird die SID nur von der Fritzbox geholt, auf der FritzLoad läuft!
Aber um die Infos von der 7240 abzuholen, müsste man an der Stelle auch die SID von der 7240 holen/benutzen. Vermutlich schlägt deshalb das Abrufen fehl.
 
Hallo SagHalt,
es muss unterschieden werden:
a) FritzLoad läuft auf einer 7170
b) FritzLoad läuft auf einer 7240 (WDS-Repeater) über eine 7270 (WDS-Master)

Auf der 7170 läuft die aktuelle FW (.80) einwandfrei.
Auf der 7240 aus b) wird die IP seit der .80 nicht mehr angezeigt.
Im log stehen auch keine IP's drin.

Mir ist aufgefallen, dass in der reconnect.sh für den VoIP-check ein anderes login-Verfahren
benutzt wird. (ein paar Zeilen weiter oben im Code)
Code:
else
  voipstat=$($pdir/bin/curl -s [URL]http://$box/cgi-bin/webcm[/URL] \
  -d "getpage=../html/de/fon/qualitytable.html" \
  -d "var:lang=de" \
  -d "sid=$cgisid" \
  -d "login:command/password=$passvoip" \
  2>/dev/null \

Der VoIP-check funktioniert nämlich noch auf der 7240! Ob es das ist?
Die SID müsste ja die gleiche sein.
Das hat TelefonSparbuch früher mal geändert:
http://sourceforge.net/apps/trac/avmload/ticket/27

Die SID muss von der 7270 (WDS-Master) sein, weil nur die eine IP von draußen bekommt!
Für den Fall, das Fritzload lokal läuft gibt es ja:
Code:
/usr/www/cgi-bin/webcm getpage=$pdir/html/ip.html

Desweiteren denke ich, dass im letzen Block nach dem ODER (||)
die sed Auswertung von http://checkip.dyndns.org/index.html nicht korrekt erfolgt.
Code:
|| \
 $pdir/bin/curl -Ls [URL]http://checkip.dyndns.org/index.html[/URL] \
  --max-time 30 \
  2>/dev/null \
  | sed -n 's/.*Current IP Address: *\([0-9\.]*\).*/\1/p'
 fi

Sonst müsste es von dort auch eine IP geben.
Vielleicht kann sich das jemand anschauen, der mit sed besser befreundet ist als ich.
Eventuell sollte man die IP dann mit (dyndns) kennzeichnen, damit man nachher leichter
erkennen kann, welcher Skriptteil die IP geliefert hat?

Gruß
Fireball
 
Hallo fireball,

die letzte sed-abfrage geht einwandfrei:
Code:
/var/media/ftp/uStor01/FritzLoad/bin # ./curl -Ls http://checkip.dyndns.org/index.html --max-time 30 2>/dev/null | sed -n 's/.*Current IP Address: *\([0-9\.]*\).*/\1/p'

ergibt

78.52.xx.xxx

Wenn du ne andere ausgabe willst kannst du einfach die klammer verschieben. z.B.:
Code:
sed -n 's/.*Current \(IP Address: [0-9\.]*\).*/\1/p'   

ergibt

IP Address: 78.52.xx.xxx
 
dumme frage . ich hab nen collectors acc und möchte gerne 8000 Punkte haben ^^. kann man mit fritz load immer die selbe datei laden lassen , aber nicht auf dem stick speichern lassen .?

THX
 
@Wetzstein:
Danke für den Test!
Dann müsste die Funktion ipadress() eigentlich einen Wert haben oder nicht?
Oder gibt es einen Fehler in dem ersten Teil nach "else"?
Kann man sich die Variablen Anzeigen lassen mit welchen Werten sie belegt sind?

EDIT:
Es sind anscheinend keine Variablen. Die Funktion wird aus der aus gui_pagetop.sh
aufgerufen und erzeugt eine Datei namens fritzload.ip

Code:
PAGEEND(){
 if [ ! -s /var/tmp/fritzload.ip ];then
  [ -z "$LIB_util_file" ] && . $pdir/lib/util_file.sh
  . $pdir/lib/reconnect.sh
  echo -n "$(ip_address)" >/var/tmp/fritzload.ip
 fi
 echo "</DIV><p class=date>IP: $(cat /var/tmp/fritzload.ip) &nbsp;/&nbsp; $(date "+%d.%m.%Y %H:%M") Uhr</p></DIV></BODY></HTML>"

@computeruser
Vor die gewünschte Datei in der Downloadliste ein R einfügen.
Die Datei wird dann immer wieder geladen nach /dev/null (ins Nirvana)
Gruß
Fireball
 
Zuletzt bearbeitet:
mahlzeit fireball,

b) FritzLoad läuft auf einer 7240 (WDS-Repeater) über eine 7270 (WDS-Master)

Hast du mal meinen Vorschlag aus http://www.ip-phone-forum.de/showpost.php?p=1518950&postcount=4649 Nachtrag2 probiert. Ich glaube das bei dir bei b) genau der externe Fall vorliegt.

Ansonsten kannst du ja mal den ersten Teil aus der else-Bedingung auskommentieren:
Code:
		$pdir/bin/curl -s http://$box/cgi-bin/webcm \
		-d "getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=home&var:menu=home&sid=$cgisid&login:command/password=$passvoip" \
		2>/dev/null \
		| sed -n 's/.*IpAdrDisplay(.\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' \
	|| \

dann müsste er in jedemfall die IP von aussen beziehen.
 
@Fireball3

du musst einen Hacken in der Config bei reconnect > extern zu setzen

wetzstein hatte es schon erwähnt :)

welche trunk Version von Fritzload?
welche firmware hat der wds master?

viele Grüße
trinkfix
 
Servus Wetzstein,

habe den Nachtrag verpasst.
Es ist genau der Fall! Den Hacken habe Ich schon immer drin.

Wenn ich daheim bin, werde ich mir die Box mal vorknöpfen...:)
Ich freu mich schon auf vi. :mad:

Ich vermute stark, dass im ersten Teil von else etwas Falsches herausgefiltert wird.
Laut Dokumentation liefert ODER (||) nur dann den nächsten Ausdruck, wenn der
Erste keine Übereinstimmung hat.

@trinkfix
Habe schon einige Trunks durch seit dem Ticket (welcher grad drauf ist hab ich nicht im Kopf)
Die FW auf dem Master ist auch die .80

Gruß
Fireball
 
wenn er aber etwas im ersten teil rausfiltert dann würde er es in fritzload.ip schreiben und anzeigen?!
 
So, da bin ich nun.
Hab ein bisschen rumgespielt und einen Teilerfolg erzielt.

1. Das Skript tut was es soll aber im ersten ELSE-Teil sieht das, was die Box ausspuckt wohl anders aus als erwartet.
Hier der Testcode:
Code:
#!/bin/ash

./curl -s http://192.168.178.1/cgi-bin/webcm -d "getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=home&var:menu=home&sid=$cgisid&login:command/password=meinpasswort" >test2.txt
Im Anhang die gesamte test2.txt.
Die Telefonnummern werden Angezeigt (habe ich Telefonnummer1 und 2 genannt).

Code:
<input type="hidden" name="login:command/response" value="" id="uiPostResponse">
<input type="hidden" name="box:settings/webui_cookie" value="" disabled>

<input type="hidden" name="var:activtype" value="pppoe" id="uiPostActivType">
<input type="hidden" name="var:tabInetstat" value="0" id="uiPostTab">

<input type="hidden" name="sip:settings/sip0/activated" value="1" id="uiPostActivsip0" disabled>
<input type="hidden" name="sip:settings/sip0/displayname" value="Telefonnummer1" id="uiPostDisplaysip0" disabled>

<input type="hidden" name="sip:settings/sip1/activated" value="1" id="uiPostActivsip1" disabled>
<input type="hidden" name="sip:settings/sip1/displayname" value="Telefonnummer2" id="uiPostDisplaysip1"
Direkt darüber, sollte die IP angezeigt werden - da ist aber nichts. :(

Mich macht auch stutzig, dass ich, egal was ich als Passwort eingebe, immer die gleiche Ausgabe erhalte!
Ich habe das Passwort zu Testzwecken im Klartext in die Codezeile eingegeben. Auch ohne Passwort kommt dieselbe Ausgabe!
Vielleicht kann jemand das gegenprüfen?

2. Mit der zweiten Abfrage über dyndns klappt es dann, wenn ich den ELSE-Teil rausnehme.
Offenbar ist die Lösung mit dem ODER (||) nicht ganz sauber. Hier müsste man eine Prüfung einbauen,
ob es sich auch wirklich um eine IP handelt die aus dem ELSE-Teil ermittelt wird.

Was könnte ich sonst noch machen, um den Scriptteil mit der Box-Abfrage zu korrigieren?
-Liegt es vielleicht an der fehlerhaften Passwort-Abfrage???
-Wird mir überhaupt die gesamte GUI über die Abfrage geliefert oder komme ich gar nicht erst rein wegen dem Passwort?

Schönen Gruß & Danke für die Tipps bisher!
Fireball

EDIT:
Und weil's so schön ist, ein Test mal ohne eingestelltem Passwort auf der Box.
Das Ergebnis ist dasselbe!
An der Stelle wo ich die IP erwartet hätte wird var:tabInetstat angezogen.
Der Browser würde javascript:gotoinetstat(2); aufrufen.
Kann mir ein php, java Guru sagen, wie ich das in die curl-Abfrage reinbringe???
 

Anhänge

Zuletzt bearbeitet:
Ist es möglich, durch Freetz, direkt auf ein NAS, welches per cifsmount geladen und gemountett wurde, runterzuladen?
 
@Fireball3

dein Anhang enthält nur die Loginseite der Box mit Passwortabfrage!

hat der master 7270 auch die IP 192.168.178.1 ?

der curl Aufruf funktioniert standalone auf der commandline nicht, da die login Prozedur vorher laufen muss.

es muss geprüft werden ob eine IP zurückkommt, wenn nicht eben dyndns ohne das ODER :D

viele Grüße
trinkfix
 
Hallo Trinkfix,
das ist mir später auch aufgefallen.
Ich habe dann eine Runde gedreht, ohne Login (Passwort auf der Box deaktiviert). Dann kommt ja direkt die Startseite beim Aufruf.
Das Ergebnis sah auch nicht anders aus.

Ja, der Master hat die 178.1

Außderdem, warum werden auf der Login-Seite die angemeldeten Telefonnummern angezeigt?
Da ist doch was faul!

Morgen versuche ich die reconnect.sh so zu ändern,
dass die Ausgabe in eine Datei erfolgt. Dann wird sich's
zeigen...

Ich kann schon auch mit der Lösung über dyndns leben,
aber es ist halt nicht die eleganteste Sache. :rolleyes:
Leider Blicke ich nicht durch den Aufbau der FB-GUI durch
und meine java und php Kenntnisse sind dem nicht gewachsen.

N8
Fireball
 
Hallo zusammen,

ich nutze FritzLoad in der Version 0.32 in Zusammenhang mit dem aktuellen Freetz-Trunk. Dort gibt es ja die Möglichkeit sobald ein USB-Stick gemountet oder umountet wird ein Skript auszuführen. Das Starten von Fritzload per Script ist ja nicht so schwer, nur wie bekomme ich es hin FritzLoad per Script zu beenden? Ich möchte lediglich das FritzLoad beendet wird, das Laufwerk soll nicht umountet werden.

Jemand ein Tipp für mich?

Gruß HolyBabel
 
@holybabel: schau dir mal die unmount_drive.sh im fritzload/bin Verzeichnis an. Wenn du den Teil ab Zeile 76 entfernst hast was du willst...
 
Danke, das werde ich mal testen.
 
Bei Youtube Video Downloads ist mir aufgefallen das die nicht unter "/var/media/ftp/uStor01/" sondern unter ""/var/media/ftp/uStor01/FritzLoad/bin/" gespeichert werden.

Könnte man für Youtube Videos auch noch eine Funktion einbauen das die Standardmäßig in der Höchstmöglichen Qualität runter geladen werden?

Mir ist nämlich aufgefallen das diese nur in 360p runtergeladen werden obwohl 480p verfügbar ist.
 
[FONT=&quot]Hi Leute,

[/FONT] [FONT=&quot]irgendwie bin ich zu blöd!

Will Fritz!Load auf ner 7170 installieren aber bekomme es nicht gebacken!
Meine Konfig ist aber auch nicht gerade Standard!

Mein Anschluss habe ich bei Tele2 [/FONT](:heul:) [FONT=&quot] und ein Thomson Speedtouch 780WLi (Tele2 gebrandet und per T69 geblockt/gewartet) hängt direkt am Anschluss (ich bekomme von denen meine Login Daten nicht!!![/FONT]:mad: [FONT=&quot]), dahinter hängt eine 7170 (über LAN-A mit dem Netzt Verbunden) und eine zweite 7170 ist über WDS mit der ersten verbunden!
An der ersten 7170 hängt ein Drucker ein Stick und eine HDD.[/FONT]

[FONT=&quot]ST 780WLi: IP 192.168.111.1
FBF 7170 No.1: IP 192.168.111.2
FBF 7170 No.2: IP 192.168.111.199

Subnet: 255.255.255.0

[/FONT]
[FONT=&quot]Alles lief bisher ohne Probleme (außer, dass ich die Telefone nicht an der FBF hängen hab), Fritz!Load lässt sich aber über keine der beiden beschriebenen Varianten installieren. Die Firmware-Methode bringt gar nix, mit der Ausnahme, dass die Box jetzt erkennt, dass eine nicht unterstützte FW drauf ist, aber das war es auch schon, kein Menüpunkt und kein Zugriff über den direktlink. Bei der Methode per telnet versucht sich FL mit dem Netz zu verbinden (Starte Fritzload Einrichtung. - FritzLoad Installer: wait for internet connection...) und es tut sich gar nix mehr.[/FONT]
[FONT=&quot]
Und jetzt bi n ich mit meinem Latein auch schon am Ende! [/FONT]:confused:

[FONT=&quot]Hat einer von Euch ne Idee?[/FONT] [FONT=&quot]

Gruß Yarando![/FONT]
 
Zuletzt bearbeitet:
Bei Youtube Video Downloads ist mir aufgefallen das die nicht unter "/var/media/ftp/uStor01/" sondern unter ""/var/media/ftp/uStor01/FritzLoad/bin/" gespeichert werden.

Ich weiß jetzt auch warum der das macht :D

Der Benutzer lädt mehre Teile eines Films hoch und kennzeichnet die wie folgt
1/5 XYZ.1.1, 2/5 XYZ.1.1, 3/5 XYZ.1.1 usw.

dadurch das der Benutzer vorn 2/5 dran stehen hat erstellt der Downloader mir einen Ordner "2" im Bin Verzeichnis (warum auch immer im bin Verzeichnis :confused:) die Datei nennt sich dann 5 XYZ.1.1

Mit Sonderzeichen wie äü usw im Filmname hat der Downloader auch nen kleines Problem, der ersetzt diese Zeichen im Dateinamen einfach mit "__"

Ich hab mir die "/hoster/youtube_com.sh" mal angeschaut der hat ja bereits so etwas drin "# IS_HD_AVAILABLE", aber das funktioniert (noch) nicht.

Zumindest habe ich jetzt 1080p 720p und 480p filme probiert mehr als 360p bekomme ich da ne raus :(
 
Kostenlos!

Statistik des Forums

Themen
248,989
Beiträge
2,308,229
Mitglieder
378,782
Neuestes Mitglied
Thomas Max