Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Über Perl einen Ping-Befehl ausführen
Frage
Hallo....bin ziemlicher Neuling im Bereich Perl.
Hab mal versucht ein Script zu schreiben, dass mir eine in ein Formular eingegeben IP pingt. Hab ne html-Datei mit einem Formlar erstellt, dass meine eingaben entgegen nimmt.
Im <form action=""> hab ich das cgi-script angegeben.
Funktioniert alles soweit...
Kann im cgi-script testweise die eingegeben IP ausgeben.
Das Script sieht folgendermaßen aus:
#!c:\apachefriends\xampp\perl\bin\perl.exe -wT
print "Content-type: text/html\n\n";
print "<html><body>";
my %FORM;
&readForm;
print "Ihre IP: $FORM{ip}<p>"; # Ausgabe der IP-Adresse
print "</body></html>";
print `ping $FORM{´ip´}`; # Dieser Befehl funkt. so nicht
sub readForm # Parameter in %FORM einlesen
{
my ($buffer,@pairs,@pair,$i);
if ($ENV{´REQUEST_METHOD´} eq "GET")
{ $buffer = $ENV{´QUERY_STRING´}; }
else
{ read(STDIN, $buffer, $ENV{´CONTENT_LENGTH´}); }
@pairs = split(/&/, $buffer);
foreach (@pairs)
{
@pair = split(/=/, $_, 2);
for ($i=0;$i<2;$i++)
{
$pair[$i] =~ tr/+/ /;
$pair[$i] =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
}
$FORM{$pair[0]} = $pair[1];
}
}
Gibt es irgendeine besondere Syntax um Variablen in der Befehlszeile aufzurufen? Wenn ich eine feste IP angebe funktioniert das Script.
Danke euch im Voraus für eure Hilfe!!
Antwort 1 von Dr.Ma-Busen
Moin!
Entweder mit z.B. qx ein anderes Programm/Script aufrufen.
http://de.selfhtml.org/perl/funktionen/systemaufrufe.htm#qx
Du kannst externe Programme/Scripte aber auch noch mit exec, system und open aufrufen.
Oder was evt. noch besser ist du nutzt da Modul ping
http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Net/Ping.html
MfG
Entweder mit z.B. qx ein anderes Programm/Script aufrufen.
http://de.selfhtml.org/perl/funktionen/systemaufrufe.htm#qx
Du kannst externe Programme/Scripte aber auch noch mit exec, system und open aufrufen.
Oder was evt. noch besser ist du nutzt da Modul ping
http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Net/Ping.html
MfG

