Björn Höhrmann: HTTP Banner einlesen?

Beitrag lesen

uff, kann mir mal jemand auf die Sprünge helfen wie ich einen kompletten HTTP banner via Perl einlesen kann? Meine Versuche (siehe unten) tun nicht ganz das was sie sollen (sie liefern nichts!!!)

s/Banner/Header/

Benutze ich als Kommandozeilen Tool:

#!perl
use IO::Socket ':crlf';
use URI::URL;

my $uri = url(shift) die "Aufruf mit: http-head.pl http://host:port/path?query\n";
my $timeout = '5';

my $sock = IO::Socket::INET->new(PeerAddr => $uri->host,
     PeerPort => $uri->port,
     Proto    => 'tcp',
     Timeout  => $timeout,
        );
unless ($sock) {
    $@ =~ s/^.*?: //;
    die "Verbindung zu $uri->host:$uri->port schlug fehl ($@).\n";
}

select($sock);

print "HEAD ", $uri->path_query, " HTTP/1.1", CRLF;
print "Connection: close", CRLF;
print "Host: ", $uri->host, ":", $uri->port, CRLF;
print CRLF;

select(STDOUT);
print <$sock>;

Ansonsten LWP::UserAgent benutzen, Header Request machen und as_string() ausgeben.