Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 25

Thema: microperl 5.8.8 auf der Fritz!Box

  1. #1
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980

    Lächeln microperl 5.8.8 auf der Fritz!Box

    So...
    hab mir mal nen Spass erlaubt und gestern Abend microperl für die Fritz!Box kompiliert.
    Lasst euch nur nicht vom Namen täuschen! Die Binary ist 2 MB groß (+libs von 11 MB )

    Code:
    # ./microperl --help
    
    Usage: ./microperl [switches] [--] [programfile] [arguments]
      -0[octal]       specify record separator (\0, if no argument)
      -a              autosplit mode with -n or -p (splits $_ into @F)
      -C[number/list]enables the listed Unicode features
      -c              check syntax only (runs BEGIN and CHECK blocks)
      -d[:debugger]   run program under debugger
      -D[number/list]set debugging flags (argument is a bit mask or alphabets)
      -e program      one line of program (several -e's allowed, omit programfile)
      -f              don't do $sitelib/sitecustomize.pl at startup
      -F/pattern/     split() pattern for -a switch (//'s are optional)
      -i[extension]   edit <> files in place (makes backup if extension supplied)
      -Idirectory     specify @INC/#include directory (several -I's allowed)
      -l[octal]       enable line ending processing, specifies line terminator
      -[mM][-]module  execute "use/no module..." before executing program
      -n              assume "while (<>) { ... }" loop around program
      -p              assume loop like -n but print line also, like sed
      -P              run program through C preprocessor before compilation
      -s              enable rudimentary parsing for switches after programfile
      -S              look for programfile using PATH environment variable
      -t              enable tainting warnings
      -T              enable tainting checks
      -u              dump core after parsing program
      -U              allow unsafe operations
      -v              print version, subversion (includes VERY IMPORTANT perl info)
      -V[:variable]   print configuration summary (or a single Config.pm variable)
      -w              enable many useful warnings (RECOMMENDED)
      -W              enable all warnings
      -x[directory]   strip off text before #!perl line and perhaps cd to directory
      -X              disable all warnings
    Leider schaff ich es nicht, CSPAN Module einzubinden. Es ist auch fraglich, ob's überhaupt möglich ist

    Um auf die Libs zu verweisen, einfach den -I Parameter anhängen: ./microperl -Ivar/media/ftp/usb/lib app.pl

    Hier ein paar Infos: http://www.foo.be/docs/tpj/issues/vo...0503-0003.html

    ps: ich hab nur microperl kompiliert, nicht das ganze perl.
    Es kann sein, das die Libs eventuell nicht richtig funzen... da hatte ich noch keine Zeit zum testen (bis auf ein paar kleinere Perl-Skripte...)
    Angehängte Dateien Angehängte Dateien
    Geändert von bodega (21.09.2006 um 12:51 Uhr)
    gruß
    Marco

    Router: 2 x FB7170

  2. #2
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980
    So.. hab's gestern mal weiter getestet und es funzt prima.

    In Verbindung mit dem mini_httpd ist das ein adäquater PHP-Ersatz.
    Hab damit mal ein Webinterface für meinen Anrufbeantworter gebaut
    Läuft auch alles recht flott, trotz der 2 MB Binary...

    Die Libs sind nicht zwingend notwendig.

    Falls es jemand schafft, Sockets::IO einzubinden, möge er das bitte posten ...
    Geändert von bodega (25.12.2006 um 13:53 Uhr)
    gruß
    Marco

    Router: 2 x FB7170

  3. #3
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980
    eben nochmal ne neue version... bei der letzten gingen die $ENV Variablen nicht. Also kein richtiges cgi/perl ohne post/get...

    hiermit gehts nun...

    Code:
    my @param = $ENV{'QUERY_STRING'};
    print  @param;
    Angehängte Dateien Angehängte Dateien
    gruß
    Marco

    Router: 2 x FB7170

  4. #4
    IPPF-Einsteiger
    Registriert seit
    21.11.2006
    Beiträge
    3
    Ersteinmal vielen dank von mir, gute Arbeit

    Aber nun meine Frage, wie bringe ich das Programm zum laufen?
    Mini HTTPD läuft problemlos, aber Perl geht immer wieder aus nachdem ich per telnet das Kommando:
    Code:
    ./microperl
    eingebe.

    Wie kriege ich das richtig zum laufen? Bitte um Hilfe
    Geändert von 3ffect0R (23.12.2006 um 19:29 Uhr)

  5. #5
    IPPF-Fan Avatar von jesus.christ
    Registriert seit
    25.06.2005
    Ort
    Mannheim
    Beiträge
    494
    hm. Dann könnte man auch vom CTorrent das Webinterface nutzen, wenn das gescheit läuft... zusammen mit nem Swapfile könnte man dann so endlich den Webtransmission loswerden. Wenn jemandem langweilig ist dann kanns ja mal jemand testen, ansonsten mach ich das dann, wenn ich die Zeit finde, meine ext3-Platte unter dem 2.6er-Kernel läuft und das jemand auch dafür kompiliert
    Geändert von jesus.christ (23.12.2006 um 19:40 Uhr)
    Anschluss:1&1 DSL 16000
    Hardware: Freetzed Fritz!Box (Firmware: 100.06.03 rev27364) + MT-F 01.03.10

  6. #6
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980
    mini_httpd starte ich mit '-c **.cgi'.

    Die .cgi Datei könnte dann z.B. so aussehen:
    Code:
    #!../../microperl/microperl -I../../microperl/microperl/lib 
    
    #use strict;
    #use warnings;
    #use Carp;
    warn();
    
    my $test = "Hallo";
    my $my_param;
    
    # HTML Header
    show_html_head("Hallo");
    
    # Parameter auslesen
    $my_param = strip_params("parameter=");
    
    print "Parameter: $my_param";
    
    # HTML footer
    show_html_foot();
    
    
    # --------------------------------------------------------------------------------------------------------
    # - Functions ---------------------------------------------------------------------------------------------
    # --------------------------------------------------------------------------------------------------------
    
    
    sub show_html_head
    {
    	print "Content-type: text/html\n\n";
    	print "<html><head><title>@_[0]</title>\n";
    	print "<meta name='author' content='maz'>\n";
    	print "<meta name='copyright' content='maz'>\n";
    	print "<meta name='Content-Type' content='text/html; charset=iso-8859-1'>\n";
    	print "<link id='cssindex' href='style.css' type='text/css' rel='stylesheet'>\n";
    	print "</head><body>\n";
    }
    
    sub show_html_foot
    {
    	print "<hr>\n";
    	print "<a href=\"index.html\"><b><<< zurück</b></a>\n";
    	print "</font></body>\n";
    }
    
    
    # --------------------------------------------------------------------------------------------------------
    # Environment Parameter strippen ($ENV{'QUERY_STRING'})
    #
    # Parameter: Key (z.B. controller= bei ..?controller=3&...)
    # Rückgabe: Wert
    # --------------------------------------------------------------------------------------------------------
    sub strip_params($)
    {
    	my $prefix = "&";
    	my $param = "&";	
    	my $value = @_[0];
    	my $ret = "";
    
    	# Get params...
    	$param .= $ENV{'QUERY_STRING'};
    
    	# URL decode (%2F,...)
    	$param =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
    	# + durch ' ' ersetzen
    	$param =~ s/\+/" "/seg; 
    
    	# URL encode
    	#$param =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
    
    	# Präfixe durchlaufen (? oder &)
    	if(index($param, "@prefixes[$i]$value") >= 0)
    	{
    		my $idx1 = -1;
    		my $idx2 = -1;
    
    		$idx1 = index($param, "$prefix$value");
    		$idx2 = index($param, "$prefix", $idx1+1);
    
    		if($idx2<0)
    		{
    			$idx2 = length($param); # - $idx1 + length($value);
    		} 
    
    		
    		$ret = (substr($param, $idx1+length($value)+1, $idx2-$idx1-length($value)-1));
    	}
    
    	if(!(($ret) eq ""))
    	{
    		# Falls gefunden, abbrechen...
    		return $ret;
    	} else {
    		#print "- @prefixes[$i] -";
    	}
    }
    Hab das jetzt mal so aus einem alten Projekt ausgeschnitten. Das mit dem strippen der Environments kriegt man bestimmt besser hin . Die Libs (-I../../microperl/microperl/lib) müssen nicht unbedingt angegeben werden.
    Microperl ist auch kein richtiges Perl. Der Vorteil sind ganz klar die Standard-C Routinen (string.h, stdio.h,..) die damit verwendet werden können.
    gruß
    Marco

    Router: 2 x FB7170

  7. #7
    IPPF-Einsteiger
    Registriert seit
    21.11.2006
    Beiträge
    3
    Hm, wenn ich das Perl Script über den ./microperl kommentar.pl laufen lasse, zeigt er die richtige Ausgabe an. Aber wenn ich es über den Browser aufrufe, zeigt er mir den kompletten Quelltext der Perl Datei =(

    Kann mir wer helfen? Das Script ist im gleichen Verzeichnis wie Microperl, dementsprechend lautet die erste Zeile
    Code:
    #!microperl
    Was mache ich falsch?

  8. #8
    IPPF-Tausend-VIP
    Registriert seit
    27.03.2005
    Beiträge
    1.389
    @ 3ffect0R:
    Hast du mini_httpd auch so gestartet wie in #6 ?

    @ bodega:
    Der Vorteil sind ganz klar die Standard-C Routinen (string.h, stdio.h,..) die damit verwendet werden können.
    Hast du dafür vielleicht mal ein Beispiel-Script ? Wäre nett ...
    VoIP: intervoip | easybell | sipgate | 1&1 | simquadrat | voipstunt
    Router:
    FritzBox Fon WLAN 7170 FW 29.04.80freetz-devel-5511
    Anbindung: 1&1 Surf & Phone Flat Special 16 k (13941/1136)
    Mobil: All-In 100 (DeutschlandSim/o2) | Netzclub | Simquadrat
    Telefon: Gigaset S150 Colour Espresso

  9. #9
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980
    @u.g
    ups.. das mit den Standard-C Routinen war etwas anders gemeint:
    equivalent sind natürlich die Funktionen aber nicht die Funktionsnamen.
    Z.B. Stringmanipulation oder Datei Lese-/Schreibroutinen. Das waren so ein paar Dinge, die mir an Bourne Shell gefehlt haben, bzw. schwer zu realisieren waren. Header Dateien kann man leider nicht einbinden. Ich dachte zwar, man könnte stdlib.h einbinden, aber das muss ich revidieren! Zuviel C tut W - Ich hab deswegen auch mal #2 geändert.
    Nichts desto trotz, man könnte microperl um Funktionen erweitern. Mit CPAN Modulen wäre es natürlich noch besser.

    Hier die Sprachelemente:
    http://btfmx1.fs.uni-bayreuth.de/html/selfhtml/tgc.htm

    @3ffect0R
    Wenn du nur nur Quelltext siehst, probiere es mal mit folgender Zeile:
    Code:
    #!/var/x/miniperl
    printf "Content-type: text/html\n\n";
    printf "<html>....";
    Der Content-Type ist hierbei nötig.
    Geändert von bodega (25.12.2006 um 14:06 Uhr)
    gruß
    Marco

    Router: 2 x FB7170

  10. #10
    IPPF-Einsteiger
    Registriert seit
    21.11.2006
    Beiträge
    3
    Er will trotzalledem net....

    Hier das Script: http://3ffect0r.sytes.net:85/comment.htm

  11. #11
    IPPF-Fan Avatar von jesus.christ
    Registriert seit
    25.06.2005
    Ort
    Mannheim
    Beiträge
    494
    Sicher, dass der Pfad zum microperl stimmt?
    Anschluss:1&1 DSL 16000
    Hardware: Freetzed Fritz!Box (Firmware: 100.06.03 rev27364) + MT-F 01.03.10

  12. #12
    IPPF-Tausend-VIP
    Registriert seit
    27.03.2005
    Beiträge
    1.389
    Zitat Zitat von 3ffect0R
    Er will trotzalledem net....
    Entweder benennst du die pl-Datei in .cgi um, oder verschiebst alle CGIs (+micro_perl?) nach cgi-bin und startest mini_httpd mit '-c "cgi-bin/*"'
    VoIP: intervoip | easybell | sipgate | 1&1 | simquadrat | voipstunt
    Router:
    FritzBox Fon WLAN 7170 FW 29.04.80freetz-devel-5511
    Anbindung: 1&1 Surf & Phone Flat Special 16 k (13941/1136)
    Mobil: All-In 100 (DeutschlandSim/o2) | Netzclub | Simquadrat
    Telefon: Gigaset S150 Colour Espresso

  13. #13
    IPPF-Tausend-VIP Avatar von bodega
    Registriert seit
    06.06.2006
    Ort
    NRW
    Beiträge
    1.980
    Mhh.. sieht so aus, als ob du microperl im root hast (#!/microperl).
    Nimm einfach die volle Pfadangabe und benenn das Skript in .cgi um.
    Ach ja, ausführbar machen mit 'chmod +x script.cgi' könnte auch noch helfen.
    gruß
    Marco

    Router: 2 x FB7170

  14. #14
    IPPF-Einsteiger
    Registriert seit
    21.12.2006
    Beiträge
    11
    als erstes würde ich mal Rechte vergeben, wie bodega schon sagt.
    Beispielsweise chmod 755 kommentar.pl
    Router: Fritz!Box Fon WLAN 7170 FW:29.04.29ds-0.2.9-12
    kompilierendes System: Debian Sarge 3.1 Kernel 2.6.18.2 SMP

  15. #15
    IPPF-Einsteiger
    Registriert seit
    11.11.2006
    Beiträge
    12
    Hallo bodega,
    ich suche für meine 7170 auch eine Anrufbeantworter Lösung, allerdings nicht für SIP Accounts, sondern für meine ISDN MSNs.
    Verfolge im Augenblick die geposteten Threads zum Thema Asterisk. Insbesondere das die USB Stick Variante von SPB.
    Habe aber noch nichts installiert...

    Frage: Könntest du dein Web-Interface einmal näher beschreiben?

    Viele Grüße,
    Michael

  16. #16
    IPPF-Fan Avatar von jesus.christ
    Registriert seit
    25.06.2005
    Ort
    Mannheim
    Beiträge
    494
    Zitat Zitat von bodega
    Falls es jemand schafft, Sockets::IO einzubinden, möge er das bitte posten ...
    ebenso Hostname und Fcntl... Wäre dankbar für Hinweise^^
    Anschluss:1&1 DSL 16000
    Hardware: Freetzed Fritz!Box (Firmware: 100.06.03 rev27364) + MT-F 01.03.10

  17. #17
    IPPF-Fan Avatar von Scaleo
    Registriert seit
    20.03.2006
    Ort
    Bayern
    Beiträge
    159
    kann des mal jemand erklären. ich hab des microperl auf einem usb stick und den mini http, der minihttpd läuft. so wie kann ich des perl nun starten und'/oder installiern. bitte um kleines how to. muss ich dann den webserver anders starten wenn ja wie?

  18. #18
    Moderator Avatar von wichard
    Registriert seit
    16.06.2005
    Ort
    Aachen
    Beiträge
    6.952
    So, wie ab Beitrag 6 beschrieben.
    VoIP-Hardware: 7170, 29.04.49-9710 7270, 54.04.56-10927 FBF 7390, 84.05.04freetz-devel-7298M, NETCAPI, Siemens Gigaset S675IP (Beta-Test)
    VoIP-Dienste: Sipgate (01801, 0241, 05252) | GMX (0241) | dus.net starter | Asterisk 1.4.11 auf vServer
    ENUM: Alle Nummern bei e164.org eingetragen | Festnetznummer zusätzlich bei e164.arpa eingetragen
    Anbindung: T-DSL 6.000 (RAM) "Call&Surf Comfort (5)"
    Telefone: 1 alte Gigaset-Basis (analog) 1 Gigaset micro, 1 Gigaset S675IP + 2 S67H (Beta-Test), 1 Gigaset DX800A, 1 Cisco 7960

  19. #19
    IPPF-Fan Avatar von Scaleo
    Registriert seit
    20.03.2006
    Ort
    Bayern
    Beiträge
    159
    Edit Ghostwalker: 2 Beiträge zusammengefasst.

    geht des auch bissl genauer schritt für schritt, bin immernoch newbie

    wo muss des pearl liegen?
    wie starte ich es?
    wie kann ich es mitdem webserver verbinden?

    2. Beitrag:
    wo muss diese cgi datei liegen die in #6 erwähnt ist.

    Wäre schön wenn antworten kämen

  20. #20
    Gesperrt
    Registriert seit
    18.01.2007
    Beiträge
    8
    wie kann ich das microperl in Verbinung mit dem Apachen Web Server starten (wurde hier im Forum beahndelt)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. DSL Anschluss --> Fritz 7170 --> Fritz!Repeater --> Fritz 7050 --> PC (geht das?)
    Von Audiojoy im Forum FRITZ!Box Fon WLAN: Diskussion nur zum Funknetzwerk
    Antworten: 3
    Letzter Beitrag: 02.02.2011, 10:36
  2. Antworten: 18
    Letzter Beitrag: 12.01.2010, 21:29
  3. Antworten: 13
    Letzter Beitrag: 04.11.2009, 10:22
  4. [PATCH] %ENV in microperl erlauben
    Von mehle im Forum Freetz
    Antworten: 3
    Letzter Beitrag: 10.02.2009, 13:30
  5. Antworten: 5
    Letzter Beitrag: 26.03.2006, 18:17

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •