Re: printing output of ping command -- New question at bottom.
From: John W. Krahn (krahnj_at_telus.net)
Date: 02/23/05
- Next message: Todd W: "Re: [Maybe OT] . . .the Contracting Business"
- Previous message: David Moron: "Re: Read from a Linux pipe hangs."
- In reply to: Tyson Sommer: "printing output of ping command -- New question at bottom."
- Next in thread: Tyson Sommer: "RE: printing output of ping command -- New question at bottom."
- Reply: Tyson Sommer: "RE: printing output of ping command -- New question at bottom."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Wed, 23 Feb 2005 12:50:22 -0800 To: Perl Beginners <beginners@perl.org>
Tyson Sommer wrote:
>
> This might be a question for beginners-cgi, but since it was mentioned
> here...
>
> I tried to use Net::Ping in a CGI script and it said I didn't have
> permissions to run ping. I can execute the section of the CGI script with
> the call to Net::Ping just fine from the cmd line as a regular user. If I
> use backticks instead, the script runs just fine via the CGI. Any
> suggestions? I'm still somewhat novice on a *nix box, so I don't know what
> to change to allow ping to be run from Net::Ping via the CGI interface (via
> Apache).
>
> Assume warnings, strictures, and that a new CGI has been called (everything
> else in the script works fine), blah, blah:
>
> my $pinger = Net::Ping->new("icmp") || die;
> my $device = $q->param('device');
>
> if( $pinger->ping($host,2) ){
> print "$host is online\n";
> }
> else{
> print "$host is offline\n";
> }
>
> This gets me an error in my browser saying I don't have permission to run
> ping (yes, using CGI::Carp... As well for troubleshooting).
perldoc Net::Ping
[snip]
If the "icmp" protocol is specified, the ping() method sends an icmp
echo message to the remote host, which is what the UNIX ping program
does. If the echoed message is received from the remote host and the
echoed information is correct, the remote host is considered reachable.
Specifying the "icmp" protocol requires that the program be run as root
or that the program be setuid to root.
Your web server does not run as root so you have to use either TCP or UDP
instead of ICMP.
John
-- use Perl; program fulfillment
- Next message: Todd W: "Re: [Maybe OT] . . .the Contracting Business"
- Previous message: David Moron: "Re: Read from a Linux pipe hangs."
- In reply to: Tyson Sommer: "printing output of ping command -- New question at bottom."
- Next in thread: Tyson Sommer: "RE: printing output of ping command -- New question at bottom."
- Reply: Tyson Sommer: "RE: printing output of ping command -- New question at bottom."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|