 use Nmap::Parser;
 my $scan = new Nmap::Parser;
 my $hostos;
 my $port;
 my $hostserv;
 $scan->parsefile($ARGV[0]);
 for my $host ($scan->all_hosts()) {
  print "IP: ".$host->addr()."\n";
  $hostos=$host->os_sig;
  if (defined $hostos->os_fingerprint){
   print $hostos->os_fingerprint;
  }
  print "\n";
  for $port ($host->tcp_open_ports){
  $hostserv=$host->tcp_service($port);
   if( defined $hostserv->fingerprint ){
    print "Unidentified service, TCP port ".$port.":\n".$hostserv->fingerprint."\n\n";
   }
  }
  for $port ($host->udp_open_ports){
   $hostserv=$host->udp_service($port);
   if( defined $hostserv->fingerprint ){
    print "Unidentified service, UDP port: ".$port.":\n".$hostserv->fingerprint."\n\n";
   }
  }
  print "\n\n";
 }
