Jump to content

FritzBox-Anruferliste 1.81


SnowHead

Empfohlene Beiträge

Moin ..... 

 

das Gleiche bitte noch mal mit diesem Script.

fritzlogin2.txt hat den gleichen Inhalt ..... ;(

 

Ansonsten siehts so aus:

/var/plugins # anrufer
+ Passwd=123456
+ TAB1=0200
+ TAB2=0400
+ TAB3=0800
+ TAB4=1000
+ awk {match($0,/>[^<>]+</); print substr($0,RSTART+4,5)}
+ grep Version
+ wget -O- http://fritz.box/jason_boxinfo.xml
Connecting to fritz.box (192.168.1.1:80)
-                    100% |*****************************************************************************************************************************************************|   364   0:00:00 ETA
+ Version=06.01
+ [ 06.01 < 05.50 ]
+ wget -O- http://fritz.box/login_sid.lua
+ awk {match($0,/Challenge>[^<>]+</); print substr($0,RSTART+10,RLENGTH-11)}
Connecting to fritz.box (192.168.1.1:80)
-                    100% |*****************************************************************************************************************************************************|   165   0:00:00 ETA
+ Challenge=c4e6e495
+ CPSTR=c4e6e495-123456
+ echo -n c4e6e495-123456
+ iconv -f ISO8859-1 -t UTF-16LE
+ sed -e s/ .*$//
+ md5sum /tmp/anrufer.md5
+ MD5=67c4367a4f8cefc3847ab782ee3cc538
+ RESPONSE=c4e6e495-67c4367a4f8cefc3847ab782ee3cc538
+ POSTDATA=response=c4e6e495-67c4367a4f8cefc3847ab782ee3cc538&page=/login_sid.lua
+ wget -O /tmp/fritzlogin2.txt --post-data=response=c4e6e495-67c4367a4f8cefc3847ab782ee3cc538&page=/login_sid.lua http://fritz.box/cgi-bin/webcm
Connecting to fritz.box (192.168.1.1:80)
fritzlogin2.txt      100% |*****************************************************************************************************************************************************|    87   0:00:00 ETA
+ wget -O- --post-data=response=c4e6e495-67c4367a4f8cefc3847ab782ee3cc538&page=/login_sid.lua http://fritz.box/cgi-bin/webcm
+ grep name="sid"
+ awk {match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}
+ head -1
+ SID=
+ wget -O /tmp/fb_anrufliste.csv http://fritz.box//fon_num/foncalls_list.lua?sid=&csv=
+ echo ~Y~T0200Datum/Zeit~T0400Name~T0800Nummer~T1000Dauer
+ echo
+ read line
+ sed -e s/^1;/~S/ -e s/^2;/~R/ -e s/^3;/~G/
+ head -n 16
+ sed -n /^[123];/p /tmp/fb_anrufliste.csv
+ msgbox title=Anruferliste msg=/tmp/anrufer.mnu

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@colt

 

Irgendwie bin ich wohl doch zu blöd, das hinzubekommen. Auf 5 verschiedenen Webseiten habe ich

5 verschiedene Aussagen zum richtigen Login gefunden. Das kann man ferngesteuert nicht alles

durchprobieren. Ich möchte Dich bitten, ein letztes Mal den angehängten Versuch, eine fritzlogin2.txt

mit gültiger SID zu erzeugen zu starten und mir zuzusenden (wenn was Vernünftiges drinsteht).

Ansonsten muß ich das Handtuch werfen und darauf hoffen, daß ein Scripter mit einem OS > 05.50

sich dieses Dramas annimmt.

Ach Mann, hätte ich das Teil bloß für mich behalten!

bearbeitet von SnowHead
Anhang entfernt
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@colt

 

Danke für den Test. Das war auch nicht der richtige Weg. Ich mach' erst mal Schluß

für heute. Danke noch mal für's Mitspielen.

Wenn es mich morgen noch mal rappelt, werde ich weiter googlen. Muß jetzt erst mal

in die Falle. Halb sechs ist die Nacht alle.

Gute Nacht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich wollte das script jetzt auch mal testen habe aber ein Problem dabei:

 

Meine Voraussetzungen: FRITZ!Box 7270 v3 mit FRITZ!OS 05.53

 

In den von mir verwendeten Images (~reloaded~ bzw. NG 2.50) fehlt iconv.

Ist das eine Keywelt-Besonderheit oder muss ich auf ein aktuelles Image wechseln.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@theobald123

Danke, daß Du mitmachen willst.
iconv ist ein normales Binary. Keine Ahnung, warum es in anderen Images nicht mit drin
ist. Für das KW-Image laß ich es immer mitbauen.
Es hängt unten an und kommt mit den Rechten 755 in ein Verzeichnis des Suchpfades.

Allerdings weiß ich nicht, ob die dafür benötigten glibc-locale im jeweiligen System mit

installiert wurden. Das muß ausprobiert werden.
Ich glaube, das hier ist eine brauchbare Vorlage, um das Login mit dem neuen OS
hinzubekommen.

iconv.tar.gz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin ..... 

 

hier auf der 7390 leider weiterhin nicht ...... 

/var/plugins # anrufer
+ Passwd=123456
+ TAB1=0200
+ TAB2=0400
+ TAB3=0800
+ TAB4=1000
+ wget -O- http://fritz.box/jason_boxinfo.xml
+ awk {match($0,/>[^<>]+</); print substr($0,RSTART+4,5)}
+ grep Version
Connecting to fritz.box (192.168.1.1:80)
-                    100% |*******************************|   364   0:00:00 ETA
+ Version=06.01
+ [ 06.01 < 05.50 ]
+ wget -O /tmp/anrufer.tmp http://fritz.box/login_sid.lua
Connecting to fritz.box (192.168.1.1:80)
anrufer.tmp          100% |*******************************|   165   0:00:00 ETA
+ awk {match($0,/SID>[^<>]+</); print substr($0,RSTART+4,RLENGTH-5)}
+ cat /tmp/anrufer.tmp
+ SID=0000000000000000
+ [ 0000000000000000 = 0000000000000000 ]
+ awk {match($0,/Challenge>[^<>]+</); print substr($0,RSTART+10,RLENGTH-11)}
+ cat /tmp/anrufer.tmp
+ Challenge=81b93822
+ CPSTR=81b93822-123456
+ echo -n 81b93822-123456
+ iconv -f ISO8859-1 -t UTF-16LE
+ sed -e s/ .*$//
+ md5sum /tmp/anrufer.md5
+ MD5=2bc04c0a6d3cbc2cfbd21e33cc71e5d8
+ RESPONSE=81b93822-2bc04c0a6d3cbc2cfbd21e33cc71e5d8
+ POSTDATA=response=81b93822-2bc04c0a6d3cbc2cfbd21e33cc71e5d8&page=/login_sid.lu                                                               a
+ + grep name="sid"
+ awk {match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}
+ head -1
wget -O- --post-data=response=81b93822-2bc04c0a6d3cbc2cfbd21e33cc71e5d8&page=/lo                                                               gin_sid.lua http://fritz.box/cgi-bin/webcm
+ SID=
+ wget -O /tmp/fb_anrufliste.csv http://fritz.box//fon_num/foncalls_list.lua?sid                                                               =&csv=
+ echo ~Y~T0200Datum/Zeit~T0400Name~T0800Nummer~T1000Dauer
+ echo
+ read line
+ head -n 16
+ sed -n /^[123];/p /tmp/fb_anrufliste.csv
+ sed -e s/^1;/~S/ -e s/^2;/~R/ -e s/^3;/~G/
+ msgbox title=Anruferliste msg=/tmp/anrufer.mnu

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da ich keine Datei anhängen kann hier meine Version zum testen:

 

 

#!/bin/sh

set -x

# Hier Passwort fuer das Webinterface der Fritzbox eintragen
Passwd="hier muss das Passwort rein"
Username=""

TAB1=0200
TAB2=0400
TAB3=0800
TAB4=1000

# OS-Version ermitteln
Version=`wget -O- http://fritz.box/jason_boxinfo.xml | grep Version | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+4,5)}'`

if [ "$Version" \< "05.50" ]
then
	# Challenge abholen
	ChallengeXML=`wget -O - "http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
	Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`

	# login aufbauen und hashen
	CPSTR="$Challenge-$Passwd"
	echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE > /tmp/anrufer.md5
	MD5=`md5sum /tmp/anrufer.md5 | sed -e s/' '.*$//`
	RESPONSE="$Challenge-$MD5"
	POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"

	# login senden und SID herausfischen
	SID=`wget -O - --post-data="$POSTDATA" "http://fritz.box/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`

	# refresh der daten auslösen
	wget -O /dev/null "http://fritz.box//cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Apagename=foncalls&var%3Aerrorpagename=foncalls&var%3Amenu=home&var%3Apagemaster=&var%3Aactivtype=pppoe&var%3AtabInetstat=0&var%3Aweckernr=&logger%3Asettings%2Ffilter=2"

	# CSV runterladen
	wget -O /tmp/fb_anrufliste.csv "http://fritz.box/cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2FFRITZ%21Box_Anrufliste.csv" 2>/dev/null
else
	wget -O /tmp/anrufer.tmp http://fritz.box/login_sid.lua
	# SID testen
	SID=`cat /tmp/anrufer.tmp | awk '{match($0,/SID>[^<>]+</); print substr($0,RSTART+4,RLENGTH-5)}'`
	if [ "$SID" = "0000000000000000" ]
	then
		# Challenge abholen
		Challenge=`cat /tmp/anrufer.tmp | awk '{match($0,/Challenge>[^<>]+</); print substr($0,RSTART+10,RLENGTH-11)}'`
		# login aufbauen und hashen
		CPSTR="$Challenge-$Passwd"
		echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE > /tmp/anrufer.md5
		MD5=`md5sum /tmp/anrufer.md5 | sed -e s/' '.*$//`
		RESPONSE="$Challenge-$MD5"
		GETDATA="?username=$Username&response=$RESPONSE"
		wget -O /tmp/anrufer.sid http://fritz.box/login_sid.lua$GETDATA 
		SID=$(sed -n '/.*<SID>\([^<]*\)<.*/s//\1/p' /tmp/anrufer.sid)
	fi
	# CSV runterladen
	wget -O /tmp/fb_anrufliste.csv "http://fritz.box//fon_num/foncalls_list.lua?sid=$SID&csv=" 2>/dev/null
fi
	
echo ~Y~T"$TAB1"Datum/Zeit~T"$TAB2"Name~T"$TAB3"Nummer~T"$TAB4"Dauer > /tmp/anrufer.mnu
echo >> /tmp/anrufer.mnu
sed -n '/^[123];/p' /tmp/fb_anrufliste.csv | head -n 16 | sed -e s/'^1;'/'~S'/ -e s/'^2;'/'~R'/ -e s/'^3;'/'~G'/ | while read line; do
	dtm=`echo $line | cut -d';' -f1`
	name=`echo $line | cut -d';' -f2`
	number=`echo $line | cut -d';' -f3`
	duration=`echo $line | cut -d';' -f6`
	echo ~T"$TAB1"$dtm~T$TAB2$name~T$TAB3$number~T$TAB4$duration >> /tmp/anrufer.mnu
done

msgbox title=Anruferliste msg=/tmp/anrufer.mnu
rm /tmp/*anruf*

exit 1

 

 

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@theobald123

 

Danke für die Unterstützung. Hast was gut.

 

 

@colt

 

Schau bitte die CSV-Datei mit einem Hex-Editor an, in welchem Format die Umlaute

bei Dir codiert sind. Bei mir werden sie nämlich ohne Probleme dargestellt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Noch eine kleine Ergänzung:

 

Der Parameter Username ist nicht notwendig.

 

Somit kann die Zeile

Username=""

entfallen, und aus

GETDATA="?username=$Username&response=$RESPONSE"

wird

GETDATA="?response=$RESPONSE"
bearbeitet von theobald123
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin ..... 

 

Schau bitte die CSV-Datei mit einem Hex-Editor an, in welchem Format die Umlaute

bei Dir codiert sind. Bei mir werden sie nämlich ohne Probleme dargestellt.

Das `ü` z.B. hat `c3 bc` ....

.... sollte also UTF8 sein ....  :sleep:  ??

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@theobald123

Danke, ich habe die Änderung eingebaut und das Script erst mal so vorn angehängt.

 

 

@colt

 

Danke für den Test. Probier bitte mal die hier angehängte Datei. Die konvertiert UTF8

vor der Ausgabe zu ISO.

bearbeitet von SnowHead
Anhang entfernt
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin .....
 

Probier bitte mal die hier angehängte Datei. Die konvertiert UTF8
vor der Ausgabe zu ISO.

Fehler in Zeile 60 .....

/var/plugins/anrufer: line 60: syntax error: unexpected "|"

 

Edit:  Fehler gefunden ..... ein `|` war doppelt .......

 

aber leider keine Ausgabe ..... 

Edit2.  Auf dieser Box ist scheinbar kein iconv ......

Melde mich dann mal von der Trinity ....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin ..... 

@colt

 

Sorry, das war die falsche Datei. Bitte diese hier verwenden.

ähhhhmmmm .... jain 

Auf der Trinity lüppts nach dem Entfernen des doppelten `|` 

 

Edit:  und die letzte angehängte funzt ebenfalls ......  :thumbsu:

Vielen Dank!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@colt

 

Danke, der zweite Test war wichtig. Neben den doppelten || hat die falsche Datei die

Konvertierung nämlich auch für OS

tioniert, da dort die Daten schon in ISO ankommen.

Ich hänge die letzte Version dann mal vorn an.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...