Perl Home Search CGI

3.4 Referer / Range


14.02.2006

3.3 check for the existance of an URI (LWP) [  up  ] - [ top ] 4 Related Links

use LWP::UserAgent;
use HTTP::Request::Common;

my $from = 0;
my $to = 59;

my $ua = LWP::UserAgent->new(
        keep_alive => 1,
        timeout    => 30
);

my $req = HTTP::Request->new( GET => $ARGV[0] );

$req->referer('http://www.empty.com/');
$req->user_agent('Mozilla/4.04 [en] (Win2K; I ;Nav)');

print "request:\n", $req->as_string(), "\n---------------------------\n";

print "request headers:\n", $req->headers_as_string(), "\n---------------------------\n";

$req->init_header(Range => sprintf("bytes=%s-%s", $from, $to));

my $response = $ua->request($req);

foreach (keys %{$response->headers()}) {
        print "$_ = ", $response->headers()->{$_}, "\n";
}

print $response->content();

Output

request:
GET http://www.example.com/cgi-bin/env.pl
Referer: http://www.empty.com/
User-Agent: Mozilla/4.04 [en] (Win2K; I ;Nav)

---------------------------
request headers:
Referer: http://www.empty.com/
User-Agent: Mozilla/4.04 [en] (Win2K; I ;Nav)

---------------------------
client-response-num = 1
client-transfer-encoding = chunked
keep-alive = timeout=5, max=100
content-type = text/html
server = Apache/1.3.26
date = Mon, 26 Aug 2002 21:11:35 GMT
connection = Keep-Alive
client-date = Mon, 26 Aug 2002 20:54:38 GMT

---------------------------
  • DOCUMENT_ROOT: /usr/www/users/reto/htdocs
  • GATEWAY_INTERFACE: CGI/1.1
  • HTTP_CONNECTION: Keep-Alive
  • HTTP_HOST: www.infocopter.com
  • HTTP_KEEP_ALIVE: 300
  • HTTP_RANGE: bytes=0-20
  • HTTP_REFERER: http://www.empty.com/
  • HTTP_USER_AGENT: Mozilla/4.04 [en] (Win2K; I ;Nav)
  • PATH: /usr/krb5/bin:/usr/krb5/sbin:/root/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/local/ssl/bin
  • QUERY_STRING:
  • REMOTE_ADDR: 123.161.169.123
  • REMOTE_PORT: 33253
  • REQUEST_METHOD: GET
  • REQUEST_URI: /cgi-bin/env.pl
  • SCRIPT_FILENAME: /usr/www/users/example/cgi-bin/env.pl
  • SCRIPT_NAME: /cgi-bin/env.pl
  • SERVER_ADDR: 66.39.72.193
  • SERVER_ADMIN: foo@pair.com
  • SERVER_NAME: www.infocopter.com
  • SERVER_PORT: 80
  • SERVER_PROTOCOL: HTTP/1.1
  • SERVER_SIGNATURE:
  • SERVER_SOFTWARE: Apache/1.3.26
  • UNIQUE_ID: PWqZh9FEAU0AAPTdd08

  • copyright by reto - created with mytexi