Admin-Stress wrote:
> Hi, I wrote a script to test if a http server is OK.
> My method is :
> - telnet to por 80
> - send any text
>
> If the http server is OK, it will return "some" text, and should contain
> string </html>
>
> So, I assume, if I can catch </html>, then my http server is OK.
>
> Here is my perl script:
>
> use Net::Telnet;
>
> sub error {
> print -255;
> exit(0);
> }
>
> print "Testing http at $ARGV[0]\n";
>
> $telnet = new Net::Telnet ( Timeout=>30, Port=>80, Errmode=>error );
> $telnet->open($ARGV[0]);
> $telnet->print('TESTING');
> $telnet->waitfor('/<\/html>/');
> print 0;
>
> The problem is, it always result -255 ... sub error called.
> However, if I set Errmode=>'die', it will result 0.
>
> Anyone know how to setup Errmode with a subroutine?
>
> And, is my method good for testing http server? I just want as simple as
> possible.
>
Have you try changing:
Erromode=>error
to:
Errormode=>\&error
this should do the trick. However, it sounds a little odd to use the Telnet
module to test a http server especially there are other modules that are
designed to work with the http protocal. will something like:
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
my $agent = LWP::UserAgent->new;
my $req = HTTP::Request->new(HEAD => 'http://www.google.com');
my $res = $agent->request($req);
if($res->is_success){
print "google up\n";
}else{
print "google down?\n";
}
__END__
make more sense?
david
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]