In this tutorial, I’ll use Python 3 and pyfiglet library to create a port scanner for a given domain name in the command line. The complete source code/script is available below.
pip install pyfiglet
code.py
import pyfiglet import sys import socket from datetime import datetime ascii_banner = pyfiglet.figlet_format("PORT SCANNER") print(ascii_banner) # Defining a target if len(sys.argv) == 2: # translate hostname to IPv4 target = socket.gethostbyname(sys.argv[1]) else: print("Invalid amount of Argument") # Add Banner print("-" * 50) print("Scanning Target: " + target) print("Scanning started at:" + str(datetime.now())) print("-" * 50) try: # will scan ports between 1 to 65,535 for port in range(1,65535): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket.setdefaulttimeout(1) # returns an error indicator result = s.connect_ex((target,port)) if result ==0: print("Port {} is open".format(port)) s.close() except KeyboardInterrupt: print("\n Exiting Program !!!!") sys.exit() except socket.gaierror: print("\n Hostname Could Not Be Resolved !!!!") sys.exit() except socket.error: print("\ Server not responding !!!!") sys.exit()