scanner.py
#!/bin/python3
import sys #system functions and parameters, allows us to enter command line arguments
import socket
from datetime import datetime as dt
#Define our target
if len(sys.argv) == 2:
target = socket.gethostbyname(sys.argv[1]) #translate a host name to IPV4
else:
print("Syntax: python3 scanner.py <ip>")
sys.exit(1)
#Add a pretty banner
print("-" * 50)
print("Scanning target " + target)
print("Time started: "+str(dt.now()))
print("-" * 50)
try:
for port in range(50,85):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1) #is a float; so as not to hang on a port
result = s.connect_ex((target,port)) #returns error indicator
print("Checking port {}".format(port))
if result == 0:
print("Port {} is open".format(port))
s.close()
except KeyboardInterrupt:
print("\nExiting program.")
sys.exit()
except socket.gaierror: #cannot connect to hostname
print("Hostname could not be resolved.")
sys.exit()
except socket.error:
print("Couldn't connect to server.")
sys.exit()
Last updated
Was this helpful?