Skip to content

Instantly share code, notes, and snippets.

@roci33
Forked from htoukour/portscanner.py
Last active July 24, 2021 13:42
Show Gist options
  • Save roci33/bc4f861d3ba1d43f9862107f6786b940 to your computer and use it in GitHub Desktop.
Save roci33/bc4f861d3ba1d43f9862107f6786b940 to your computer and use it in GitHub Desktop.
A Simple Python Port Scanner Script
import socket
import subprocess
import sys
from datetime import datetime
subprocess.call('cls', shell=True)
# Ask for input
remoteServer = input("Enter a remote host to scan: ")
startPort = int(input("Start scan to port: "))
endPort = int(input("End scan to port: "))
# Get ip by host name
remoteServerIP = socket.gethostbyname(remoteServer)
# Print a nice banner with information on which host we are about to scan
print("-" * 60)
print("Please wait, scanning remote host", remoteServerIP)
print("-" * 60)
# Check what time the scan started
t1 = datetime.now()
# Using the range function to specify ports (here it will scans all ports
# between 1 and 1024)
# We also put in some error handling for catching errors
try:
openport = []
for port in range(startPort, endPort + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((remoteServerIP, port))
if result == 0:
print("Port {}: Open".format(port))
openport.append(port)
else:
print(f"Port {port}: Close")
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()
# Checking the time again
t2 = datetime.now()
# Calculates the difference of time, to see how long it took to run the script
total = t2 - t1
# Printing the information to screen
print('Scanning Completed in: ', total)
#Printing the open port
print(f"Open port: {openport}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment