<a href="http://remote_page_address" ...>Link name</a>
The following code illustrates how you can get a web page from a remote server.
use IO::Socket;
sub GetHTTPHeader
{
my ($server, $page) = @_;
if( $server =~ /:(\d+)$/ ){
my $port = $1;
}
else{
$port = 80;
}
$page = "/" . $page unless $page =~ /^\//;
my $sock = new IO::Socket::INET (
PeerAddr => $server,
PeerPort => $port,
Proto => 'tcp',
);
die "Could not create socket: $!\n" unless $sock;
# sending HTTP 1.1 request
print $sock "HEAD http://$server:$port$page HTTP/1.1\nHost: $server:$port\nConnection: Closed\n\n";
@header = <$sock>;
close($sock);
return @header;
}
sub GetWebPage
{
my ($server, $page) = @_;
if( $server =~ /:(\d+)$/ ){
my $port = $1;
}
else{
$port = 80;
}
$page = "/" . $page unless $page =~ /^\//;
my $sock = new IO::Socket::INET (
PeerAddr => $server,
PeerPort => $port,
Proto => 'tcp',
);
die "Could not create socket: $!\n" unless $sock;
# sending HTTP 1.1 request
print $sock "GET http://$server:$port$page HTTP/1.1\nHost: $server:$port\nConnection: Closed\n\n";
do{
$line = <$sock>
} until ($line =~ /^\r\n/);
@webpage = <$sock>;
close($sock);
return @webpage;
}
die("Usage:\n\tgetpage server[:port] [page]\n") unless $#ARGV>-1;
print GetHTTPHeader($ARGV[0], $ARGV[1]);
print GetWebPage($ARGV[0], $ARGV[1]);