#!/usr/bin/perl -w use Net::Ping; use strict; my @netzwerk; my %opt; my $netzwerk; my $pingpc; my $ret = 0; my $zaehler = 0; my $timeout = 1; # Parameter bearbeiten for ($zaehler = 0; $zaehler <= $#ARGV; $zaehler++) { push @netzwerk, $ARGV[$zaehler]; } foreach $netzwerk (@netzwerk) { print "Überprüfe das Netzwerk : $netzwerk.0-255 \n"; for ($zaehler = 1; $zaehler < 255; $zaehler++) { $pingpc = $netzwerk . "." . $zaehler; $ret = &pinger($pingpc); open(PCS, ">>pc.txt"); print PCS "$pingpc --> ONLINE \n" if ($ret == 1); print "$pingpc --> ONLINE \n" if ($ret == 1); close(PCS); } } exit; sub pinger # (Host) { # Parameter: Host my $host = shift; # zu pingender Host my $wert = 0; # Ergebnis: 0 nicht erreicht, 1 erreicht, 2 Fehler # Neues Net-Ping Objekt my $p = Net::Ping->new('icmp'); # Exceptions auffangen eval { $wert = 1 if ($p->ping($host , $timeout)); if ($@) { print "Ping fehlgeschlagen\n $@\n"; $wert = 2; } $p->close; undef ($p); sleep(1); # return $wert; } }