Hauptseite

Whois Plugin für den zBot

10. Juli 2009 von

Vor einiger Zeit habe ich ein Whois-Plugin für meinen Jabber Bot zBot geschrieben. Aus irgendeinem Grund habe ich es nie online gestellt. Dies möchte ich hiermit nachholen. Ich habe den Code noch ein wenig verschönert.

Fauchi95 hat mich gefragt, ob man nicht ein Whois-Plugin schreiben könnte, da ist es mir wieder eingefallen :-)

Die Bedienung ist so wie man es sich denkt. Man sendet dem Bot ein whois gefolgt von der gewünschten Domain und bekommt das Ergebnis zurück gesendet.

Beispiel:

whois zinformatik.de

Zum Installieren des Plugins kopiert man die Datei Whois.pm in das Verzeichnis plugins im Hauptverzeichnis des zBot und startet dann den Bot neu.

Download:
Whois.pm


Schlagworte: , ,



6 Kommentare zu „Whois Plugin für den zBot“

  1. b23 sagt:

    Eine Frage was passiert den, wenn ich anstatt einer Domain “bla.de; rm -rf ~/” eingebe? :)

  2. admin sagt:

    Hallo b23,

    ich muss zugeben, dass ich an deise Möglichkeit garnicht gedacht habe. Eigentlich weiß ich ja, dass man Usereingaben immer Filtern sollte, aber ich habe es dieses mal total vergessen.

    Die Dateien im Home-Verzeichnis werden trotzdem nicht gelöscht, da der String nach Leerzeichen gesplittet wird und somit höchstens ein bla.de;rm möglich wäre.

    Ich habe trotzdem besser mal einen Filter eingebaut. Vielen Dank für den Hinweis. Ich sollte echt mehr darauf achten.

    Viele Grüße,
    zimon

  3. b24 sagt:

    Noch ‘ne kurze Frage … was ist, wenn ich “bla.de;rm%09-rf%09/%26″ (oder sonstige Whitespace, wie ev. auch Unicode-Whitespace \xa0 usw.) verwende? Der Filter ist nämlich nach der Verwendung drinnen …

  4. zimon sagt:

    Hallo b24,

    hast Recht, ich hab die Zeile an der falschen Stelle eingefüfgt. Hab auch vergessen das Escapezeichen vor den Punkt zu setzen.
    Jetzt sollte die Benutzereingabe richtig gefiltert werden.

    Oder hab ich noch was vergessen?

    Viele Grüße und Danke für den Hinweis :-)
    zimon

  5. b24 sagt:

    Wenns schneller sein soll, würde ich tr/…//d empfehlen.

        for my $index(1..$#outputLines){
            $df .= $outputLines[$index]."\n";
            last if $index == $#outputLines;
        }
    

    würde ich gerne wissen, warum von 1 weg … den disclaimer schneidest eh schon mit shift weg.
    Dann würde ich einfach noch ein shift nehmen, falls notwendig.

    Die Schleife reduziert sich dann auf

        $df = join("\n", "Ausgabe von whois:\n", @outputlines);
    

    Und das mit splitten und joinen versteh ich auch nicht ganz …
    Warum nicht einfach

        my $output = `whois $domain`;
        my $df = "Ausgabe von 'whois $domain':\n\n";
    
        # remove first paragraph (because its the disclaimer)
        $output =~ s/^.*?\n\s*\n//m;
        return $df . $output;
    

    Wenn nach dem disclaimer noch was entfernt werden sollte (wg. index >=1 oben), würde ich das ins s/// dazunehmen.

  6. zimon sagt:

    Hallo b24,

    mit einem regulären Ausdruck kann man den Disclaimer wirklich viel eleganter entfernen. Allerding muss der Modifier s sein und nicht m (damit der ganze String als eine Zeile gesehen wird).

    Vielen Dank, hab den Code entsprechend angepasst. (Demnächst sollte ich mal den restlichen Code vom zBot durchgehen und nach solchen ungünstigen Konstrukten ausschau halten.)

    Viele Grüße
    zimon

Kommentieren

Kommentarlinks könnten nofollow frei sein.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de