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

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to