Perl-Beispiele
Die HTML-Dokumente und Perl-Scripte sind hier nicht lauffähig,
sondern müssen erst angepaßt werden.
Der Upload der Scripten (.cgi) auf irgendeinen Server per FTP
muß im ASCII-Modus erfolgen, damit gegebenenfalls die
Zeilenenden von DOS/WINDOWS (CR, LF) in UNIX-kompatible Zeilenenden
(Newline = LF) umgewandelt werden. eventielle Bild- und HTML-Dateien
laden Sie im Binär-Modus hoch. Die Scripte selbst sind im
Quelltext kommentiert (manchmal etwas spärlich).
Perl-Programme
- Perl-Kamel
- Perl-Variante des fortune-Programms
- Perl-Funktion zum Prüfen einer IBAN
- Indexdateien für Bilderverzeichnisse erzeugen
Das Verzeichnis wird nach Bilddateien durchsucht und eine Datei "index.html"
erzeugt, die links zu den Bilder enthält.
- Attachment-Mail
Das Programm sendet eine beliebige Datei als E-Mail-Attachment.
- Replace und ScanDirectory
Rumpfprogramm zum rekursiven traversieren von Verzeichnissen und ein Programm
zum Ersetzen von Strings in allen Dateien innerhalb eines Verzeichnisses (rekursiv).
- Find Modules
Das Programm sucht rekursiv nach alle Perl-Modulen.
- ccverify.pl, ccverify.html
ccverify_readme.txt
Verifizieren von Kreditkartennummern.
- Kalenderblatt
Erstellen eines HTML-Kalenderblatts für beliebige Monate und Jahre.
- Lotto
erzeugt Lottozahlen (Zufallszahlen ohne DOubletten)
- Banner
Das gute alte UNIX-Banner als Perl-Programm.
- Crossref
Ein Perl-Programm, das eine Crossrefernzliste von Programmen erzeugt. Für jedes Wort
(Variablenname, res. Wort, usw.) werden alle Zeilen aufgelistet, in denen das Wort
vorkommt.
- SID
Ein Perl-Programm, das eine kryptographisch starke zufaellige Session ID erzeugt.
- Search File
Durchsuchen von Textdateien als Beispiel für Perl-TK.
- Beep
Monfone Melodien spielen mit dem Modul "Audio::Beep".
Eine Sammlung von Funktionen zur Datumsberechnung (Jeff Crum).
Datum/Uhrzeit synchronisieren mit einem beliebigen Webserver.
Umsetzung einer Suchzeile mit einfacher Syntax in eine MySQL-Select-Anweisung.
CGI-Scripte
- Environment-Variablen auflisten
Dies ist ein einfaches Testprogramm mit dem man mal die CGI-Funktion testen kann.
- Formulareingaben auflisten
Dies ist ein einfaches Testprogramm mit dem man Formulareingaben testen kann.
- Netzwerk-Tools
Aufruf beliebiger Programme über ein CGI-Script. Damit niemand Schindluder
damit treiben kann, werden vom Formular aus nicht die Kommandos selbst, sondern
nur ein Name/Code übergeben. Die Funktion können Sie auf den
Service-Seiten von www.netzmafia.de testen. Die Konfiguration erfolgt über
eine Kommandoliste, die als Hash (Code/Kommando) definiert wird. Beginnt der Code
mit "P-", ist ein Parameter notwendig, bei "N-" ist er optional und bei "R-"
ist der Parameter verboten (Beispiel im Quelltext).
- HTTP-Header
Gibt den Header einer HTTP-Anfrage zurück; zeigt also, was der Webserver
an den Browser schickt. Erwartet als Formulareingabe eine beliebige URL.
Testaufruf: ..../httpheader.cgi?URL=www.dings.da
- Portscanner und
Portscanner-CGI
Ein Portscanner für die Kommandozeile und
ein einfacher Portscanner, der sein Formular mitbringt. Als Eingabe werden
die Rechneradresse und die niedrigst/höchste zu scannende Portadresse
verlangt. Bitte nur die eigenen Rechner scannen, sonst handeln
Sie sich eventuell Ärger ein.
- Formular und CGI-Programm
für Nachricht an den Webmaster. Die Nachricht wird in eine Datei geschrieben,
die sich dann auch automatisch weiterbearbeiten läßt.
- E-Mail per Formular verschicken.
Im Formular kann man Betreff und Mailtext eingeben. Der Empfänger-Namen
wird per Formular-Variable übergeben (...formular-mail.cgi?recipient=meier)
Die Mail-Domain (also alles hinter dem '@') ist im Script fest verankert (sonst
könnte das Script als Anonymisierer bzw. Mail-Relais verwendet werden). Da
auf der Webseite keine Mailadresse auftaucht (sondern nur das Link), ist das
auch ein guter Spam-Schutz gegen Programme, die Mailadressen von Webseiten sammeln.
- Kommentar-Formular und
Programm
Hier kann man Kommentare abgeben. Die Kommentare werden automatisch ans
Formular angehängt, das dadurch natürlich kontinuierlich wächst.
- Gästebuch-Formular und Programme für
die Eingabe sowie Ausgabe.
Dieses Script ist etwas komfortabler als das vorhergehende. Es gibt ein Formular
mit Script zum Eingeben eines Beitrags und ein weiteres Script zum Anschauen.
Alle Einträge werden in einer Textdatei gespeichert und um einige Absenderangaben
ergänzt.
- Formular und Programm zum
Absetzen von Majordomo-Kommandos.
Majordomo ist zwar komplett per Mail bedienbar, aber wer Mailinglisten zur
Unterstützung einer Website betreibt, kann den Besuchern das Ein- und
Austragen sowie andere Listenfunktionen erleichtern. Mit Formular und
Script lassen sich alle Majordomo-Funktionen aufrufen.
- Webserver-Statistik
Die meisten "großen" Server-Statistik-Programme liefern oft nur allgemeine
Statistiken und die "Top-20". Will man spezielle Daten aus den Webserver-Logs
ziehen, muß man auf eigene Entwicklungen zurückgreifen. Das vorliegende
Programm liefert zwei Sorten Balkendiagramme, die per TABLE-Tag realisiert
werden (ganz ohne Grafik).
- User-Verwaltung für '.htaccess'-Zugang
mit Formular und Setup-Tool.
Eintragen, Löschen, Auflisten von Usern und Passwort-Änderungen werden
hiermit einfacher, denn alles erfolgt per Webformular. Damit nicht jeder Änderungen
vornehmen kann, muß in der entsprechenden ".htpasswd"-Datei ein Benutzer "admin"
eingetragen sein. Alle Aktionen benötigen die Angabe des Admin-Passworts.
Ein Setup-Programm richtet in einem Verzeichnis des Webservers die entsprechenden
Dateien (Userdatei, .htaccess, usw.) und den Admin-User ein.
- Automatische Beantwortung von E-Mails
Eigentlich eine Studie, denn alles was dies Programm macht, gibt es auch als
fertiges Perl-Modul. Das Programm zeigt aber gut, wie man einen "Automaten" zur
verarbeitung eies strukturierten Textes baut. Das Programm analysiert den Mail-Header
und kann auch mit Multipart-Mime umgehen. Man kann nicht nur eine automatische
Antwort generieren (wie z. B. "vacation"), sondern auch z. B. ein Mail-zu-Fax-Gateway
oder ähnliches basteln.
- Suchmaschine für kleine Web-Präsenzen
mit Formular
Dies Script kann Suchmaschinen wie Glimpse oder HtDig nicht ersetzen. Er wird kein
Index erzeugt, der dann bei einer Suchanfrage durchsucht wird, sondern bei jeder
Suchanfrage werden die HTML-Dateien "on the fly" durchsucht. Dabei wird ein
Startverzeichnis angegeben, das dann rekursiv durchsucht wird. Bei vielen Dateien
dauert die Suche natürlich irgendwann zu lange. Für private Sites
reicht es aber allemal. Neben den Suchbegriffen kann man angeben, ob diese Begriffe
UND- oder ODER-verknüpft werden sollen. Außerdem können das/die
Startverzeichnis(sse) und auszuschließende Verzeichnisse angegeben werden.
- Einfacher Netzwerkscanner
Dieses Programm 'pingt' alle möglichen Rechner eines C-Netzes an
(von Hostnummer 1 - 253; 254 wird ausgelassen, da Gateway).
Nicht erreichbare Hosts spielen keine Rolle. Für erreichbare Hosts
wird der Name abgefragt. Hat er keinen Namen (d. h. keinen
Nameserver-Eintrag), wird er als 'verdächtig' gemeldet.
Wer will kann sich natuerlich auch alle aktiven Rechner ausgeben
lassen.
Die zu scannenden Netze werden auf der Kommandozeile angegeben,
z. B.: pinger '10.10.10' '10.10.11' '192.168.33'
Optionen: -a: Alle aktiven Rechner auflisten, -p: Portscan
verdächtiger Rechner.
- Passwort ändern
Ein Script für Root zum nicht-interaktiven ändern des Passworts eines
Users (z. B. für die automatische Vergabe von Passworten. Eventuell müssen
Pfade im Programm angepaßt werden.
- Prozesse killen
Ein Script für Root zum Beenden aller Prozesse des angegebenen Users (hilfreich
bei amok laufenden Prozessen oder wenn der User vergessen hat, sich auszuloggen).
Eventuell müssen Pfade im Programm angepaßt werden.
- CGI-Telnet
von Rohitab Batra. Dieses Programm erlaubt Telnet-Funktionen über die CGI-Schnittstelle
(Wenn z. B. der Provider kein Telnet oder SSH zuläßt). Mit Dateiup- und
Download. Der Betrieb dieses CGI-Scripts macht den Serverbetrieb unsicherer (Eindringen
von Hackern möglich).
- Pre-Installation Tester
von William Bontrager. Das Script testet diverse Voraussetzungen für CGI-Scripte
(Environment, intallierte Module, Pfade,etc.). Anleitung im Quellcode.
- CGI-Programm zum Erfassen von Umfragen
Man baut das Umfrage-Formular in eine Webseite ein und
erzeugt die Datei poll.dat und schon kann man Umfragen starten.
- CGI-Programm für das Abonnieren/Kündigen und Verwalten
von Newsletter-Adresslisten (letztendlich Mailinglisten). Das CGI-Programm hazt zwei
Modi: Anwender-Modus zum Abonnieren/Kündigen und Administrator-Modus zum Bearbeiten
einer Liste (Eintragen, Ändern und Löschen von Adressen) und zum Anlegen sowie
Löschen von Listen. Die Listen enthalten
E-Mail-Adressen, jeweils eine Adresse pro Zeile. Sie lassen sich mit einem eigenen
Versende-Programm oder per include:-Anweisung in der Datei /etc/aliases
nutzen. Wer keinen Zugang zu /etc/aliases hat, kann auch das Programm
sendfile.pl verwenden, das es erlaubt eine Textdatei und optional ein Attachment
an alle User einer Mailingliste zu versenden.
Um sicherzustellen, daß nicht zum Scherz Einträge erfolgen, landet der Abonnement-
oder Kündigungswunsch erst in einer Zwischendatei ("candidates"). Der Benutzer erhät
automatisch eine E-Mail mit einem Freigabecode. Erst durch Eingabe des Freigabecodes
(Anklicken der URL in der Mail oder Kopiern derselben in die Adresszeile des Browsers)
erfolgt die endgültige Freigabe.
Der Listen-Administrator identifiziert sich mit einem Passwort, das in einer eigenen Datei
gespeichert ist (siehe Konfigurationsteil des Programms). Die "candidates"-Datei
wächst kontinuierlich und dient so auch als Logfile.
- Grafischer Besucherzähler
Jeder Aufruf zeigt eine Grafik mit dem Zählerstand, Demonstration für die
Referenz auf ein Programm per IMG-Tag.
- Server-Push
Diashow - wie im Kapitel 4 beschrieben.
Copyright © FH München, FB 04, Prof. Jürgen Plate
Letzte Aktualisierung: 03. Dec 2004