--- dont_scan_printers.old	Wed Dec 10 18:30:13 2003
+++ dont_scan_printers.nasl	Fri Dec 12 12:44:50 2003
@@ -68,7 +68,7 @@
 # Test if open ports are seen on a printer
 # http://www.lprng.com/LPRng-HOWTO-Multipart/x4981.htm
 appsocket = 0;
-foreach p (ports)
+foreach p (keys(ports))
 {
   p = int(p - "Ports/tcp/");
   if (	   p == 35		# AppSocket for QMS
@@ -79,20 +79,17 @@
 	|| p == 9220 || p == 9290	# ??? seen on HP printers
 	|| p == 10001)		# Xerox - programmable :-(
     appsocket = 1;
-# Look for common administration or printing port 
+# Look for common non-printer ports
   else if (
-	   p != 21		# FTP
-	&& p != 23		# telnet
-	&& p != 80		# www
-	&& p != 139 && p!= 445	# SMB
-	&& p != 280		# http-mgmt
-	&& p != 443
-	&& p != 515 		# lpd
-	&& p != 631 )		# IPP
-# Unknown port => not a printer
-# We could be more precise and test for "forbidden port".
-# Even seen a printer with SSH, SMTP, DNS, finger...?
-    exit(0);
+	   p == 22		# SSH
+	|| p == 25		# SMTP
+	|| p == 53		# dns
+	|| p == 139 || p == 445	# SMB - are there any printers that are SMB enabled??
+	|| p == 123		# ntp
+	|| p == 443		# https
+	|| p == 389 		# ldap
+	)
+	exit(0);
 }
 
 # OK, this might well be an AppSocket printer
