12
12
# # SHODAN
13
13
14
14
our ($ua , $limit , $shoapikey , $shoip , $shocount , $shosearch , $shoquery , $shoquerySearch , $shoqueryTags , $shoservices , $shoresolve ,
15
- $shoreverse , $shomyip , $shoapiInfo , $shofilters , $facets , $pages , $output , $V_IP , $V_RANG , @c );
15
+ $shoreverse , $shomyip , $shoapiInfo , $shofilters , $shoports , $ facets , $pages , $output , $V_IP , $V_RANG , @c );
16
16
17
17
my $nn =0;
18
18
my $noshodanres =" No results found|Invalid IP" ;
19
19
my $base =" https://api.shodan.io" ;
20
20
my @sho_scans =($shoip , $shocount , $shosearch , $shoquery , $shoquerySearch , $shoqueryTags , $shoservices , $shoresolve , $shoreverse ,
21
- $shomyip , $shoapiInfo );
21
+ $shomyip , $shoapiInfo , $shoports );
22
22
$facets =" " if !$facets ;
23
23
$pages =1 if !$pages ;
24
24
@@ -50,6 +50,7 @@ sub check_host_validation {
50
50
sho_ip($f , $nn ) if $sub eq 1;
51
51
sho_dns_resolve($f , $nn ) if $sub eq 2;
52
52
sho_dns_reverse($f , $nn ) if $sub eq 3;
53
+ sho_ports($f , $nn ) if $sub eq 4;
53
54
}else {
54
55
invalid();
55
56
}
@@ -149,7 +150,7 @@ sub build_sho_ip {
149
150
# ##########################################################################################
150
151
# # JSON DECODE ######################################################################
151
152
sub _json {
152
- my $shoRes =shift ;
153
+ my $shoRes =$_ [0] ;
153
154
my $json = JSON-> new-> allow_nonref;
154
155
return $json -> decode( $shoRes );
155
156
}
@@ -285,6 +286,7 @@ sub sho_services {
285
286
my $n =0;
286
287
while ( $shoRes =~ / "(.*?)": "(.*?)"/migs ) {
287
288
$n ++;
289
+ sleep 1;
288
290
sho_print(" " , " Port" , $1 , " " );
289
291
sho_print(" " , " Name" , $2 , " " );
290
292
print $c [10]." ..........................................\n " ;
@@ -320,10 +322,10 @@ sub shoapinfo {
320
322
if ($shoRes ) {
321
323
$shoRes =_json($shoRes );
322
324
end_hash_print($shoRes );
323
- ltak();
324
325
}else {
325
326
no_Result(" your API Info" );
326
327
}
328
+ ltak();
327
329
}
328
330
329
331
# ##########################################################################################
@@ -364,6 +366,21 @@ sub sho_dns_reverse {
364
366
ltak();
365
367
}
366
368
369
+ # ##########################################################################################
370
+ # # SHODAN PORTS #########################################################################
371
+ sub sho_ports {
372
+ my ($port , $nn )=@_ ;
373
+ sho_print(" " , " " , " " , " Getting all used shodan api Ports" );
374
+ sleep 1;
375
+ my $shoRes =getShoResults(" $base /shodan/ports?key=$shoapikey " );
376
+ if ( $shoRes ) {
377
+ sho_print(" " , " Ports" , $shoRes , " " );
378
+ }else {
379
+ no_Result(" ports" );
380
+ }
381
+ ltak();
382
+ }
383
+
367
384
# ##########################################################################################
368
385
# # SEARCH COUNT #########################################################################
369
386
sub sho_count {
@@ -381,6 +398,7 @@ sub sho_count {
381
398
no_Result($query );
382
399
}
383
400
}
401
+ ltak();
384
402
}
385
403
386
404
# ##########################################################################################
@@ -630,6 +648,10 @@ sub sho_ip {
630
648
my @shoreverse =build_sho_ip($shoreverse );
631
649
for my $f (@shoreverse ) { $nn ++; check_host_validation($f , $nn , " 3" ); }
632
650
}
651
+ if ( $shoports ) {
652
+ my @shoports =build_sho_ip($shoports );
653
+ for my $f (@shoports ) { $nn ++; check_host_validation($f , $nn , " 4" ); }
654
+ }
633
655
if ( $shoqueryTags ) { sho_query_tags(); }
634
656
if ( $shoquery ) { sho_query(); }
635
657
if ( $shoservices ) { sho_services(); }
0 commit comments