Via Perl Formulardaten posten
Hallo Zusammen, die Fritzbox 7050 WLan bietet die Möglichkeit, das man via Mausklick Telefonnummern anrufen kann, die sich in der Anrufliste befinden. Das KAdressbuch bietet die Möglichkeit, ein Programm zu bestimmen, das die Telefonnummern im Adressbuch wählt. Das Problem dabei ist, das die Daten via einem Formular POST an die Fritzbox gesendet werden. Dieses möchte ich gerne mittels einem Perlscript erledigen. Ich habe nur keinen Plan, wie ein Header aussehen muss, das das wie ein POST gesendet wird. Kennt jemand einen Link, wo man Beispiele sehen kann oder wie solch einen Header aussieht. Bye Michael -- Die letzten Worte des General Custer "Wo kommen die verdammten Indianer her?" ________________________________________________________________________ http://macbyte.info/ ICQ #151172379 http://dattuxi.de/
Hallo, Am Wed, 12 Oct 2005, Michael Raab schrieb:
die Fritzbox 7050 WLan bietet die Möglichkeit, das man via Mausklick Telefonnummern anrufen kann, die sich in der Anrufliste befinden. Das KAdressbuch bietet die Möglichkeit, ein Programm zu bestimmen, das die Telefonnummern im Adressbuch wählt. Das Problem dabei ist, das die Daten via einem Formular POST an die Fritzbox gesendet werden. Dieses möchte ich gerne mittels einem Perlscript erledigen. Ich habe nur keinen Plan, wie ein Header aussehen muss, das das wie ein POST gesendet wird. Kennt jemand einen Link, wo man Beispiele sehen kann oder wie solch einen Header aussieht.
POST (aus libwww-perl) macht genau das, was der Name verspricht. echo 'dein request' | POST http://fritzbox/deine/url -dnh -- What got my attention one time, however, was the list that included both "chicken" and "chicken meat" as distinct ingredients. -- Kenneth Brody
am Mittwoch, 12. Oktober 2005 17:20 schrieb David Haller:
Am Wed, 12 Oct 2005, Michael Raab schrieb:
die Fritzbox 7050 WLan bietet die Möglichkeit, das man via Mausklick Telefonnummern anrufen kann, die sich in der Anrufliste befinden. Das KAdressbuch bietet die Möglichkeit, ein Programm zu bestimmen, das die Telefonnummern im Adressbuch wählt. Das Problem dabei ist, das die Daten via einem Formular POST an die Fritzbox gesendet werden. Dieses möchte ich gerne mittels einem Perlscript erledigen. Ich habe nur keinen Plan, wie ein Header aussehen muss, das das wie ein POST gesendet wird. Kennt jemand einen Link, wo man Beispiele sehen kann oder wie solch einen Header aussieht.
POST (aus libwww-perl) macht genau das, was der Name verspricht.
echo 'dein request' | POST http://fritzbox/deine/url
Und wie würde das aussehen, wenn mehrere Parameter via POST gesendet werden müssen. Bye Michael -- Erstaunlich viele Menschen sind originell, aber nur bei der Rechtschreibung. -- Georg Thomalla (dt. Schauspieler) _______________________________________________________________________ http://macbyte.info/ http://dattuxi.de/ Registered Linux User #228306 Linux 2.6.12-1.1378_FC3 ICQ #151172379
Hallo, Am Wed, 12 Oct 2005, Michael Raab schrieb:
am Mittwoch, 12. Oktober 2005 17:20 schrieb David Haller:
Am Wed, 12 Oct 2005, Michael Raab schrieb:
die Fritzbox 7050 WLan bietet die Möglichkeit, das man via Mausklick Telefonnummern anrufen kann, die sich in der Anrufliste befinden. Das KAdressbuch bietet die Möglichkeit, ein Programm zu bestimmen, das die Telefonnummern im Adressbuch wählt. Das Problem dabei ist, das die Daten via einem Formular POST an die Fritzbox gesendet werden. Dieses möchte ich gerne mittels einem Perlscript erledigen. Ich habe nur keinen Plan, wie ein Header aussehen muss, das das wie ein POST gesendet wird. Kennt jemand einen Link, wo man Beispiele sehen kann oder wie solch einen Header aussieht.
POST (aus libwww-perl) macht genau das, was der Name verspricht.
echo 'dein request' | POST http://fritzbox/deine/url
Und wie würde das aussehen, wenn mehrere Parameter via POST gesendet werden müssen.
$ echo -e 'variable1=wert1\nvariable2=wert2' | POST ...
$ echo 'variable1=wert1
variable2=wert2' | POST ...
$ cat <
am Mittwoch, 12. Oktober 2005 20:22 schrieb David Haller:
Am Wed, 12 Oct 2005, Michael Raab schrieb:
Und wie würde das aussehen, wenn mehrere Parameter via POST gesendet werden müssen.
$ echo -e 'variable1=wert1\nvariable2=wert2' | POST ...
Das \n muss in ein & geändert werden. Jetzt ist es mir möglich, jemanden via Mausklick anzurufen.
Und im Quelltext von "POST" / "GET" findest du auch wie du das in einem eigenen Script machen kannst. ;)
Damit werde ich mich auch noch befassen. Aber CTI -und das auch via VOIP- ist jetzt Realität. Und das Beste ist aber, das sämtliche Hardware mit Linux läuft. :-) Bye Michael -- Was versteht man unter "Kadaververjüngung"? Das ist, wenn Klausjürgen Wussow die Gesichtscreme von Uschi Glas nimmt! -- Oliver Kalkofe ________________________________________________________________________ http://macbyte.info/ ICQ #151172379 http://dattuxi.de/
Hallo, Am Wed, 12 Oct 2005, Michael Raab schrieb:
am Mittwoch, 12. Oktober 2005 20:22 schrieb David Haller:
Am Wed, 12 Oct 2005, Michael Raab schrieb:
Und wie würde das aussehen, wenn mehrere Parameter via POST gesendet werden müssen.
$ echo -e 'variable1=wert1\nvariable2=wert2' | POST ...
Das \n muss in ein & geändert werden.
Aeh, stimmt wohl, sorry. Mich wundert aber sowieso, dass das nur per POST und nicht per GET funktioniert... Naja ;)
Jetzt ist es mir möglich, jemanden via Mausklick anzurufen.
*g*
Und im Quelltext von "POST" / "GET" findest du auch wie du das in einem eigenen Script machen kannst. ;)
Damit werde ich mich auch noch befassen.
LWP zu verwenden ist eigentlich recht simpel. my $response = LWP::UserAgent->new()->post( $URL, { 'var1' => 'val1', 'var2' => 'val2' } ); Fuer Babelfish z.B.: use LWP::UserAgent; my $response = LWP::UserAgent->new()->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, ); 'doit', 'urltext' und 'lp' sind die Parameter die von Babelfish so verwendet/vorgegeben werden...
Aber CTI -und das auch via VOIP- ist jetzt Realität. Und das Beste ist aber, das sämtliche Hardware mit Linux läuft. :-)
*g* -dnh -- "I anticipate doing a lot of puking this week." -- Paul Tomblin
am Donnerstag, 13. Oktober 2005 00:57 schrieb David Haller:
Hallo,
Am Wed, 12 Oct 2005, Michael Raab schrieb:
am Mittwoch, 12. Oktober 2005 20:22 schrieb David Haller:
Am Wed, 12 Oct 2005, Michael Raab schrieb:
Und wie würde das aussehen, wenn mehrere Parameter via POST gesendet werden müssen.
$ echo -e 'variable1=wert1\nvariable2=wert2' | POST ...
Das \n muss in ein & geändert werden.
Aeh, stimmt wohl, sorry. Mich wundert aber sowieso, dass das nur per POST und nicht per GET funktioniert... Naja ;)
Naja, mir egal, Hauptsache es funzt jetzt. Und solche Dinge stellen ja nur unter Windows ein Problem da. *g* Die Software der Fritzbox ist recht komplex. Mit dem letztem Firmwareupdate kann die Box auch ADSL2+. Zudem ist die Box auch sehr auf Sicherheit ausgelegt. D.h. das man die Weboberfläche nur erreichen kann, wenn sich der zugreifende Rechner im selben Netz befindet.
Jetzt ist es mir möglich, jemanden via Mausklick anzurufen.
*g*
Und im Quelltext von "POST" / "GET" findest du auch wie du das in einem eigenen Script machen kannst. ;)
Damit werde ich mich auch noch befassen.
LWP zu verwenden ist eigentlich recht simpel.
my $response = LWP::UserAgent->new()->post( $URL, { 'var1' => 'val1', 'var2' => 'val2' } );
Das sieht ja echt simpel aus.
Fuer Babelfish z.B.:
use LWP::UserAgent; my $response = LWP::UserAgent->new()->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, );
'doit', 'urltext' und 'lp' sind die Parameter die von Babelfish so verwendet/vorgegeben werden...
Und in $response steht dann das Ergebnis? Bye Michael -- Niemand hat mich gefragt ob ich Leben will, also kann mir auch niemand sagen wie ich leben soll. -- Friedrich Schiller ________________________________________________________________________ http://macbyte.info/ ICQ #151172379 http://dattuxi.de/
Hallo, Am Thu, 13 Oct 2005, Michael Raab schrieb:
am Donnerstag, 13. Oktober 2005 00:57 schrieb David Haller: [..]
LWP zu verwenden ist eigentlich recht simpel. [..] Fuer Babelfish z.B.:
use LWP::UserAgent; my $response = LWP::UserAgent->new()->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, );
'doit', 'urltext' und 'lp' sind die Parameter die von Babelfish so verwendet/vorgegeben werden...
Und in $response steht dann das Ergebnis?
Nein. LWP::UserAgent::post liefert ein HTTP::Response Objekt zurueck (siehe 'perldoc HTTP::Response'). Um den Content (Server-Antwort ohne HTTP-Header) zu bekommen musst du die content()-Methode verwende. Also z.B.: print $response->content() if $response; oder print $response->decoded_content( { charset => 'iso-8859-15' } ) if $response; Das HTML wirst du z.B. mit 'HTML::Parser' los. ==== UNGETESTET! ==== #!/usr/bin/perl -w use strict; use LWP::UserAgent; use HTML::Parser; use Text::Wrap; $Text::Wrap::columns = 68; sub handle_text { print wrap(" ", "", shift); } my $parser = HTML::Parser->new(text_h => [ \&handle_text , "dtext"]); $parser->unbroken_text(1); my $ua = LWP::UserAgent->new(); my $text = "Dies ist ein Testtext, den Babelfish übersetzen soll"; my $response = $ua->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, ); $parser->parse( $response->content() ) if $response; 1; ==== Da fehlt natuerlich noch einiges an Fehlerbehandlung u.a.m. HTH, -dnh -- Wenn der Mailserver platzt, werden halt nochmal 80 GB dazugesteckt. Ist billiger als die Arbeitszeit zum Aufräumen. -- Marc Haber
participants (2)
-
David Haller
-
Michael Raab