#! /local/bin/perl5 $url = $ARGV[0]; $STATUSONLY = $ARGV[1]; $OUTPUT = $ARGV[2]; $METHODE = $ARGV[3]; $PATH = $ARGV[4]; $outtime = $ARGV[5]; $PARAMETER = $ARGV[6]; if ($outtime <=0) { $outtime=120; } $agentname = "xwolf Agent V1.3 (http://www.xwolf.com/)"; ############################################################################## if (not $ARGV[0]) { print "Syntax:\n"; print "agent.pl (URL) (Status) (Ausgabe) (Methode) (Path) (Outtimer) (Parameter) \n"; print "wobei:\n"; print "\tURL: Seite die abgerufen werden soll.\n"; print "\tStatus: 1=Nur der Status wird zurueckgegeben (HEAD-Request), 0 sonst\n"; print "\tAusgabe: 0=Alles ausgaben, 1=Nur den Status, 2=Keine Ausgabe. \n"; print "\t (Exit-Wert der Programmes enthaelt Status.)\n"; print "\tMethode: 1=POST, 0=GET\n"; print "\tPath: 1=Pathinfo nutzen anstelle von Query\n"; print "\tOuttimer: Zeit in Sekunden, nachdem die Suche abgebrochen wird.\n"; print "\tParameter: Parameter fuer PUT oder PATHINFO-Requests\n"; exit; } $SIG{ALRM} = sub { die(" Timed out. "); }; alarm($outtime); use LWP::UserAgent; $ua= new LWP::UserAgent; $ua->agent($agentname); if ($PATH==1) { if (length($PARAMETER) < 1) {$PATH=0;} } if ($METHODE==1) { if (length($PARAMETER) < 1) {$METHODE=0;} } if ($STATUSONLY==1) { $request= new HTTP::Request('HEAD',$url); if (not $OUTPUT) {$OUTPUT=1;} } else { if ($METHODE==1) { my $header = new HTTP::Headers ( Content_Type => 'application/x-www-form-urlencoded', Content_Length => length($PARAMETER)); $request = new HTTP::Request ('POST',$url,$header,$PARAMETER); } else { if ($PARAMETER) { if ($PATH==1) { chop($url) if substr($url,-1,1) eq '/'; $url .= "/$PARAMETER"; } else { $url .= "?$PARAMETER"; } } $request = new HTTP::Request('GET',$url); } } local $response = $ua->request($request); $code = $response->code; $message = $response->message; $laenge=$response->content_length; $inhalt = $response->content; if ($OUTPUT !=2) { print "Status: $code, $message, $laenge\n"; if (not $OUTPUT) {print "\n$inhalt\n";} } exit($code);