Browse Source

Merge pull request #9 from sl4ureano/master

Create PortScan.py
pull/11/head
Jeffery Russell 6 years ago
committed by GitHub
parent
commit
214cdf9014
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 63 additions and 0 deletions
  1. +63
    -0
      other/PortScan.py

+ 63
- 0
other/PortScan.py View File

@ -0,0 +1,63 @@
#!/usr/bin/env python3
''' PortScan v3
-----------
This application scans for open ports on the designated system. It uses
multiprocessing to speed up this process.
'''
import socket
import subprocess
import sys
from datetime import datetime
from multiprocessing import Pool
def scan(port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((target_ip, port))
if result == 0:
print("Port {}:\tOpen".format(port))
sock.close()
except socket.gaierror:
print('Hostname could not be resolved.')
sys.exit(0)
except socket.error:
print("Couldn't connect to server.")
sys.exit(0)
except:
return
if __name__ == '__main__':
ports = list(range(1,4096))
target = ''
try:
target = sys.argv[1]
except:
print("\nUsage:\t{} [target]\n\n\tScan for open ports on target machine.\n".format(sys.argv[0]))
sys.exit(0)
# Clear the screen
subprocess.call('clear', shell=True)
target_ip = socket.gethostbyname(target)
# Print a nice banner with information on which host we are about to scan
print("-" * 60)
print("Please wait, scanning remote host", target_ip)
print("-" * 60)
# Check what time the scan started
t1 = datetime.now()
with Pool(processes = 8) as p:
p.map(scan, ports)
# 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)

Loading…
Cancel
Save