Rückwärts-Suche mal anders - hier habt ihr wieder was zum Spielen

  • :moin


    Ich hab mal wieder gefrickelt und dachte, dass das Ergebnis ja vielleicht dem einen oder anderen nützt und stelle es hier zur Verfügung...


    Ich habe versucht, eine einigermaßen generische Perl-Bibliothek (objektorientiert) zu schreiben, um nahezu beliebige Telefonbücher abzufragen :)
    Über eine simple Konfiguration können für jede erdenkliche Quelle u.a. die URL und je eine Regular Expression für Treffer/kein_Treffer angegeben werden.
    Bei Bedarf können die Ergebnisse natürlich auch im lokalen Adressbuch abgelegt werden.


    Ich habe dem Paket ein kleines Beispiel-Skript beigelegt, welches bereits folgende Online-Telefonbücher konfiguriert hat:
    - http://fritz.box (Fritzbox Adressbuch)
    - http://www.dasoertliche.de
    - http://www.11880.com
    - http://www.meinestadt.de
    - http://www.goyellow.de
    - http://www.klicktel.de


    Im Skript wird zuerst das lokale Adressbuch abgefragt und danach alle konfigurierten Telefonbücher - beim ersten gefundenen Treffer wird das Ergebnis ausgegeben und das Skript beendet sich.


    Schnellanleitung für die Testwilligen:

    Code
    1. tar -xzf reverse-lookup.tgz
    2. cd reverse-lookup/
    3. touch phonebook.tdb
    4. ./reverse-lookup.pl 0123456789


    Viel Spaß,
    Matze


    PS.: Das alles natürlich wie immer ohne Gewähr und auf eigene Gefahr ;)

  • Hi Matze,


    ich mach wohl was falsch, ich bekomme leide die folgende Fehlermeldung:
    "Insecure $ENV{ENV} while running with -T switch at lib/Phone/ReverseLookup.pm line 435"
    Was will mir diese Meldung sagen?
    Habe einfach deine "Schnellanleitung" ausgeführt


    Gruß
    Hego

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • So, und weils so schön ist, habe ich gleich noch ein AGI-Skript für Asterisk gebastelt :unsch


    Eingerichtet und getestet werden kann das mittels:

    Code
    1. tar -xzf lookup.agi.tgz
    2. cp lookup.agi /usr/share/asterisk/agi-bin/
    3. touch /var/lib/asterisk/phonebook.tdb
    4. chown asterisk:asterisk /usr/share/asterisk/agi-bin/lookup.pl
    5. chown /var/lib/asterisk/phonebook.tdb
    6. echo "agi_callerid: 0123456789" | /usr/share/asterisk/agi-bin/lookup.pl


    Gruß,
    Matze

  • Hi Matze,


    ja, das wars, wenn ich das "T" entferne funktionierts


    Gruß,
    Hego

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • sigiberlin : Da muss ich leider passen - meine C/C++ Kenntnisse sind sehr dürftig, da müssten andere ran...



    Btw.: Wäre es nicht auch nett, das Ganze als Server-Dienst laufen zu lassen ? Dann könnte man von jedem Rechner aus einfach sowas machen:

    Code
    1. vdr:~# echo "0123456789" | netcat -n 192.168.1.1 1234
    2. NAME: Hans Mustermann
    3. DETAIL: Musterstrasse 10, 012345 Musterstadt
    4. vdr:~#


    Gruß,
    Matze

  • Hi @ll,


    hatte doch glatt vergessen, zu erwähnen, wie man die Bibliothek ins System integriert...
    Da sich hier allerdings noch keiner beschwert hat, gehe ich mal davon aus, dass es jeder selbst hinbekommen hat ;)


    Trotzdem hier nochmal kurz ein möglicher Weg (Zielverzeichnis: /usr/share/perl5/):

    Code
    1. tar -xzf reverse-lookup.tgz
    2. cd reverse-lookup/
    3. mkdir -p /usr/share/perl5/Phone
    4. cp lib/Phone/ReverseLookup.pm /usr/share/perl5/Phone/
    5. ...


    Wenn man das gemacht hat, kann man die Bibliothek verwenden, ohne dass man deren Pfad explizit mit 'use lib "/Pfad/zur/Bibliothek";' angeben muss.


    Wer diesen Schritt nicht gehen will, muss im Skript reverse-lookup.pl (bzw. lookup.agi) den Pfad zu den Bibliotheken händisch anpassen, und zwar muss die Zeile use lib "./lib"; an die eigenen Gegebenheiten angepasst werden.


    Gruß,
    Matze

  • Schönes Script! Was jetzt noch fehlt ist eine Konvertierung der Ergebnisse in korrektes UTF-8:


    Code
    1. $ ./reverse-lookup.pl 07211330
    2. SOURCE: www.meinestadt.de
    3. NUMBER: 07211330
    4. NAME: Stadtjugendausschuss e.V. Geschýftsstelle
    5. DETAIL: Moltkestr. 22, 76133 Karlsruhe

    Eine Option "Mit/ohne Zeichenkonvertierung der Ausgabe" wäre klasse!


    Grüße
    Michi

    Wohnzimmer: Techsolo TC-400 :: ASUS P5N7A-VM :: Intel Core 2 Duo E7400 :: GeForce 9300 onboard :: vdr 1.7.15 e-tobi ::
    In Rente: Pimped Scenic 600 (Bilder und Aufbau) :: PIII 600Mhz :: Hauppauge Nexus-S 2.1 4MB :: vdr 1.5.2 e-tobi ::


    "Wer denkt, dass Volksvertreter das Volk vertreten, der glaubt auch, dass Zitronenfalter Zitronen falten." Zeit zum ändern!