Prerequisites: Socket Programming in Python
This article is just to provide a sample code to generate a Port Scanner. This Port Scanner will work for both the Web Applications as well as remote Host. This tool has been created to provide the basic functionality of a Port Scanner. The general concept of Sockets had been used to provide the functionality. Port Scanner is built on Python 3 and uses some extra libraries such as socket and pyfiglet (for a fancy banner).
Please find the below source code for the Port Scanner :
Source Code
Python3
import pyfiglet
import sys
import socket
from datetime import datetime
ascii_banner = pyfiglet.figlet_format( "PORT SCANNER" )
print (ascii_banner)
if len (sys.argv) = = 2 :
target = socket.gethostbyname(sys.argv[ 1 ])
else :
print ( "Invalid amount of Argument" )
print (" - " * 50 )
print ("Scanning Target: " + target)
print ("Scanning started at:" + str (datetime.now()))
print (" - " * 50 )
try :
for port in range ( 1 , 65535 ):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout( 1 )
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()
|
Output:

Note: In the above code at line 27 i.e for the port in range(1, 65535): you can custom define your ports under which range you have to scan. This port scanner will generally take the time of 2 mins maximum to produce output in the format, that so and so ports are open or closed.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!