File Coverage

blib/lib/App/pscan/Scanner.pm
Criterion Covered Total %
statement 6 29 20.6
branch 0 14 0.0
condition n/a
subroutine 2 4 50.0
pod 0 1 0.0
total 8 48 16.6


line stmt bran cond sub pod time code
1             package App::pscan::Scanner;
2 1     1   1219 use Net::IP;
  1         96100  
  1         304  
3 1     1   10 use App::pscan::Utils;
  1         2  
  1         931  
4              
5              
6             sub run {
7 0     0 0   my $self = shift;
8 0           $self->_gen_range(shift);
9 0           $self->scan();
10              
11             }
12              
13             sub _gen_range() {
14 0     0     my $self = shift;
15 0           my $cmd=shift;
16 0           my $Ip;
17             my $Port;
18 0 0         if($cmd=~/:/){
19 0           ( $Ip, $Port ) = split( /:/, $cmd );
20              
21             } else {
22 0           $Ip=$cmd;
23             }
24              
25 0 0         if ( my $IP = new Net::IP($Ip) ) {
26 0           $Ip=$IP;
27              
28             }
29             else {
30 0           info "Resolving $Ip";
31 0           $Ip = resolve($Ip);
32 0           $Ip =new Net::IP($Ip);
33             }
34              
35 0 0         if ( !defined($Ip) ) {
36 0           error "! No ip to scan";
37 0           exit;
38             } else {
39 0           info '- starting scan -';
40              
41             }
42              
43 0 0         my ( $f, $l ) = generate_ports($Port) if $Port;
44              
45 0 0         info 'Scanning for ' . ( ( $l + 1 ) - $f ) . ' port(s)' if $Port;
46              
47 0           $self->{'IP'} = $Ip;
48 0 0         $self->{'first'} = $f if $Port;
49 0 0         $self->{'last'} = $l if $Port;
50              
51             }
52              
53             1;