#!/usr/bin/perl use warnings; use Net::Ping; use Socket; print "Enter the subnet you wish to scan just the first 3 octet's\n"; $ipnumber =; chomp $ipnumber; @iparray = map $ipnumber. ".$_",1..254 ; #print @iparray; #open (ERRORLOG, ">errorlog"); open (OFFLINE,">offline"); #open (ONLINE,">online"); #my @iparray = qw( www.slashdot.org www.deja.com www.perlmonks.org ); my $proto = 'icmp'; my $def_timeout = '0'; my $bytes = '64'; my $p = Net::Ping->new($proto, $def_timeout , $bytes); $! = 1; foreach my $host (@iparray) { print ONLINE "$host online \n" if $p->ping($host); print ERRORLOG "$host offline \n" unless $p->ping($host,1); print OFFLINE "$host \n" unless $p->ping($host,1); } $p->close(); close OFFLINE; close ERRORLOG; close ONLINE; open (IPLIST, "offline"); #open (OFFLINEHOST, ">offlinehost"); @list=; $list = @list; #print "@list\n"; chomp @list; my $i; my $peer_host; format STDOUT_TOP = IP# Machine name ---------------- ------------------------------------ ------- . format STDOUT = @<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^<<<<<< $i, $peer_host, "offline" . foreach $i (@list) { $peer_host = gethostbyaddr(inet_aton($i), AF_INET); #$peer_host = gethostbyaddr(inet_aton($i), AF_INET); #print OFFLINEHOST "$peer_host and ipaddress $i\n"; #print OFFLINEHOST "$peer_host and ipaddress $i\n"; write } close OFFLINE;