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 Skripte selbst sind im
Quelltext kommentiert (manchmal etwas spärlich).
Perl-Programme
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-Skript. 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 Skript fest verankert (sonst
könnte das Skript 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 Skript ist etwas komfortabler als das vorhergehende. Es gibt ein Formular
mit Skript zum Eingeben eines Beitrags und ein weiteres Skript 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
Skript 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 Skript 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 Skript 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 Skript 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-Skripts 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: 11. Oct 2007