theHarvester/discovery/port_scanner.py

31 lines
917 B
Python
Raw Normal View History

import threading
import socket
class port_scan():
def __init__(self, host, ports):
self.threads = 25
self.host = host
self.ports = ports
self.lock = threading.BoundedSemaphore(value=self.threads)
def port_scanner(self, host, ports):
openports = []
self.lock.acquire()
for port in ports:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
result = s.connect_ex((host, int(port)))
if result == 0:
openports.append(port)
s.close()
except Exception as e:
print(e)
pass
self.lock.release()
return openports
def process(self):
ports = self.port_scanner (self.host, self.ports)
return ports