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
Folgende Beiträge könnten Dich auch interessieren:
Schlagworte: Bot, Jabber, whois








Eine Frage was passiert den, wenn ich anstatt einer Domain “bla.de; rm -rf ~/” eingebe?
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;rmmö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
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 …
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
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.
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