python27.zip
#!/usr/bin/env python
import sys, os
from optparse import OptionParser
import socket
VERSION="1.0.0 (2015-06-21)"
# auto-detect basedir
old_pwd = os.getcwd()
os.chdir(os.path.join(os.path.dirname(sys.argv[0]), ".."))
BASEDIR = os.getcwd()
os.chdir(old_pwd)
def usage():
# print "1 10 20 30 40 50 60 70 80"
# print "|...'....|....'....|....'....|....'....|....'....|....'....|....'....|....'....|"
print "Usage: %s [OPTIONS] [HOST]" % sys.argv[0]
print ""
print "OPTIONS:"
print " -h --help Show this help"
print " --version Display version information"
print " -v --verbose Show verbose output"
print " -q --quick Scan common ports only"
print ""
print "EXAMPLES:"
print " %s -q hostname Start quick portscan on hostname" % sys.argv[0]
print ""
def scan_system(remoteServer, scanCommonPorts):
common_ports = [22, 80, 139, 161, 389, 443, 445, 631, 636, 8000, 8080, 8443, 9000, 9001, 9002, 9003]
all_ports = range(1,1025)
try:
remoteServerIP = socket.gethostbyname(remoteServer)
if(scanCommonPorts):
scan_ports = common_ports
else:
scan_ports = all_ports
print "scanning %s (%s) common_ports = %s" % (remoteServer, remoteServerIP, scanCommonPorts)
for port in scan_ports:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((remoteServerIP, port))
if result == 0:
print "Port {}: Open".format(port)
sock.close()
except KeyboardInterrupt:
print "You pressed Ctrl+C"
sys.exit()
except socket.gaierror:
print 'Hostname could not be resolved. Exiting'
sys.exit()
except socket.error:
print "Couldn't connect to server"
sys.exit()
def main(argv):
parser = OptionParser(usage="%prog [OPTIONS]", version="%prog, Version "+VERSION)
parser.remove_option("-h")
parser.remove_option("--version")
parser.add_option("-h", "--help", dest="help", action="store_true")
parser.add_option("--version", action="version")
parser.add_option("-v", "--verbose", dest="verbose", action="store_true")
parser.add_option("-q", "--quick", action="store_true", dest="common_ports", default=False)
(options, args) = parser.parse_args(argv)
args.extend([""])
system = args[0]
if options.help or system == "":
usage()
sys.exit()
scan_system(system, options.common_ports)
sys.exit(0)
#
# MAIN
#
if __name__ == "__main__":
main(sys.argv[1:])