Schrift
[thread]8614[/thread]

unixbefehle aus perl-script ausführen

Leser: 1


<< >> 7 Einträge, 1 Seite
kale_1990
 2007-01-01 14:24
#72821 #72821
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo,

frohes neues jahr...
wie kann ichdenn aus einem perlscript herraus unixbefehle ausführen? z.b. das ich eine schleife mach und in dieser schleife ping ausgeführt wird und sich z.b. von der ip 192.168.2.1 bis zur ip 192.168.2.254 durchpingt und die antworten also antwort, zielhost nicht erreichbar oder unbekannter host zurückgibt...
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
renee
 2007-01-01 14:42
#72822 #72822
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dafür musst Du keinen Unixbefehl nehmen, sondern dafür eignet sich das Modul CPAN:Net::Ping:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Net::Ping;

my $p = Net::Ping->new();
for(1..254){
my $host = '192.168.2.'.$_;
print "$host is ";
print "NOT " unless $p->ping($host, 2);
print "reachable.\n";
sleep(1);
}
\n\n

<!--EDIT|renee|1167657270-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
.mike.
 2007-01-01 14:52
#72823 #72823
User since
2006-04-07
26 Artikel
BenutzerIn
[default_avatar]
dann fehlt aber ein
Code: (dl )
my $p = new Net::Ping;
nach dem
Code: (dl )
use Net::Ping;
oder?
renee
 2007-01-01 15:14
#72824 #72824
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
stimmt... habs oben geändert...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kale_1990
 2007-01-02 00:55
#72825 #72825
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
cool danke! :) :)
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
sid burn
 2007-01-02 02:32
#72826 #72826
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Um deine Frage trotzdem zu beantworten.
Das geht mit system() oder qx().

system() ruft lediglich den Befehl auf, qx führt den Befehl aus und gibt die Ausgabe des Befehls zurück.

Ansonsten geht auch open() damit kannst du ein Befehl ausführen und dann Zeilenweise von einem Dateihandle lesen. Somit muss dein Skript nicht warten bis der Befehl komplett ausgeführt wurde.


Ansonsten wenn es nur um das Pingen geht brauchst du nichtmal Perl. Geht auch mit nmap.

"nmap -sP 192.168.1.1-254"
"nmap -sP 192.168.1.0/24"
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
kale_1990
 2007-01-03 03:11
#72827 #72827
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
danke
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
<< >> 7 Einträge, 1 Seite



View all threads created 2007-01-01 14:24.