#!/usr/bin/python

import socket
import sys
import argparse

def userPortInput():		    # Ask the user for the ports to be read.
    input = raw_input("Enter the ports to be checked(sepparated by spaces): ")
    input = input.split(" ")
    return input

def main():
    parser = argparse.ArgumentParser(description = "Test for open ports...")
    mutex = parser.add_mutually_exclusive_group()
    parser.add_argument('-v', '--verbose', help='Add extra verbosity to the output of the scanner', action='store_true')
    mutex.add_argument('-a', '--all', help='Scan all the possible ports', action='store_true')
    mutex.add_argument('-p', '--ports', help='Scan the specified ports only', type=int, choices=range(0,65536), nargs='*', default=[])
    args = parser.parse_args()
    if args.all:
        ports = range(0, 65536)
    elif args.ports:
        ports = args.ports
    else:
        ports = userPortInput()
    
    for port in ports:		    # For every given port attempt to connect...
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        banner = False
        try:
            if args.verbose:
                print "--> Attempting to connect to 127.0.0.1:" + str(port)
            s.connect(('127.0.0.1',int(port)))
            s.send("Port Checking")
            banner = s.recv(1024)
        except(socket.error):	    # If a socket.error exception is caught, it means the attempt to connect has failed, 
            continue		    # hence the port is closed... In that case advance to the next port.
        if banner=='':
            banner = "No Response..."
        print "[+] Port "+ str(port) +" is open!"+ "  ==> Reply: "+ str(banner)
        s.close()

if __name__ =="__main__":
    main()

#!/usr/bin/python

import socket
import sys
import argparse

def main():
    parser = argparse.ArgumentParser(description = "Test for open ports...")
    mutex = parser.add_mutually_exclusive_group()
    parser.add_argument('-v', '--verbose', help='Add extra verbosity to the output of the scanner', action='store_true')
    mutex.add_argument('-a', '--all', help='Scan all the possible ports', action='store_true')
    mutex.add_argument('-p', '--ports', help='Scan the specified ports only', type=int, choices=range(0,65536), nargs='*', default=[])
    args = parser.parse_args()

    if args.all:
        ports = range(0, 65536)
    elif args.ports:
        ports = args.ports
    else:
        ports = userPortInput()
    
    for port in ports:		    # For every given port attempt to connect...
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        banner = False
        try:
            if args.verbose:
                print "--> Attempting to connect to 127.0.0.1:" + str(port)
            s.connect(('127.0.0.1',int(port)))
            s.send("Port Checking")
            banner = s.recv(1024)
        except(socket.error):	    # If a socket.error exception is caught, it means the attempt to connect has failed, 
            continue		    # hence the port is closed... In that case advance to the next port.
        if banner=='':
            banner = "No Response..."
        print "[+] Port "+ str(port) +" is open!"+ "  ==> Reply: "+ str(banner)
        s.close()

if __name__ =="__main__":
    main()

Remove interactive user input