Michael Schröpl: (HTTP) Wie heißt der Webserver zu einer URL?

Beitrag lesen

Hi,

ich habe mir (inspiriert durch einen link checker, der das auch konnte) ein kleines Perl-Programm geschrieben, welches zu einer beliebigen URL den Namen des entsprechenden Webservers feststellen kann.

Ich habe hier auch eine CGI-Version - vielleicht will Stefan die mal als Dienst auf www.teamone.de installieren (HTML-Formular dazu ist trivial, aber auch vorhanden). Das könnte man beispielsweise in den .htaccess-Artikel einbauen und den Leser erst mal checken lassen, ob sein Provider einen Apache-Webserver hat ...

Die Superminikurzversion zum Testen:

#-------------------------------------------------
use LWP::Simple;
#-------------------------------------------------
my $url = "http://hier_servername_eintragen";

Bei mir wird der über CGI gelesen und die

Ausgabe in HTML formatiert

#-------------------------------------------------

Document-Head zur URL lesen - da steht auch der Server-Name drin

my ($mimetype, $size, $modified, $expires, $server) = LWP::Simple::head ($url);
#-------------------------------------------------
print "Der Server der URL '$url' identifiziert sich als '$server'\n"; }
#-------------------------------------------------

Mit ActivePerl 5.005 unter Windows NT4 funktioniert das auch tadellos (egal ob in dieser CGI-Variante oder als Standalone-Perl-Programm mit eingebrannter URL etc.).

Mit Perl 5.004 unter IBM AIX funktioniert es *nicht*. Ich bekomme immer eine leere Antwort in allen fünf Feldern von "head" zurück.

Um überhaupt LWP:Simple auf meiner UNIX-Kiste verwenden zu können (was *nicht* in der normalen Perl5.004-Auslieferung enthalten ist, mußte ich mir vorher aus CPAN einen Haufen Module holen:

  • MIME-Base64 V2.11
  • URI         V1.03
  • HTML-Parser V2.23
  • libnet      V1.0606
  • Digest-MD5  V2.08
  • libwww-perl V5.44
    Fragt mich nicht, wieso - das Installationsverfahren über "make" findet entsprechende Abhängigkeiten und fordert das ganze andere Zeug (in dieser Reihenfolge) als Vorbedingung für libwww-perl, wo dann endlich LWP:Simple drin ist.
    Die Versionsnummern sind jeweils die neuesten, die ich (vor ein paar Wochen) bei CPAN gefunden hatte.

LWP an sich funktioniert - jedenfalls haben wir ein CGI-Skript mit LWP::Simple::get zum "Absaugen" einer URL erfolgreich laufen lassen.
Das obige Program selbst ist unter Perl5.004 nach "perl -c" durchaus "OK" und liefert keinerlei Fehlermeldungen - nur eben auch kein Ergebnis.

Hat jemand eine Ahnung,
a) wieso das Skript mit UNIX-Perl5.004 plus der genannten Module nicht funktioniert, oder
b) wo ich für die UNIX-Schiene eine Perl-Auslieferung bekommen kann, die an Vollständigkeit mit dem (beeindruckenden) ActivePerl-Paket mithalten kann?

Ich will mir ja nicht für jedes Skript wieder fünf weitere CPAN-Module installieren - gegen tausend Stück auf einmal hätte ich aber keine Bedenken ... Und vor allem möchte ich auf beiden Plattformen dieselbe "Ausbaustufe" von Perl haben.

Eigentlich müßten die Module ja doch als Perl-Quelltexte vorliegen. Dann könnte ich sie vielleicht einfach von einem Rechner auf den anderen übertragen.
Andererseits ruft das CPAN-Installationprogramm über "make" manchmal den C-Compiler auf - wozu das überhaupt?

Grübelgrübel ...

Vielleicht können ein paar Perl-Benutzer unter UNIX mal ausprobieren, ob das Skript bei ihnen läuft und welche Perl-"Ausbaustufe" sie dafür verwenden? (Cheatah? Frank Schönmann? Stefan - falls er es anbieten will?)
Bei mir liefert "perl -v" die Version "5.004_01". Ich habe mal versucht, mir 5.005 zu holen, die ließ sich bei mir aber nicht übersetzen ... :-(