theHarvester/discovery/port_scanner.py

33 lines
903 B
Python
Raw Normal View History

import socket
2019-01-11 10:09:47 +08:00
import threading
2019-01-01 10:38:32 +08:00
class PortScan:
2019-01-11 10:09:47 +08:00
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:
2019-01-01 09:00:10 +08:00
connect = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect.settimeout(2)
result = connect.connect_ex((host, int(port)))
if result == 0:
openports.append(port)
2019-01-01 09:00:10 +08:00
connect.close()
except Exception as e:
print(e)
pass
self.lock.release()
return openports
def process(self):
2019-01-01 09:00:10 +08:00
ports = self.port_scanner(self.host, self.ports)
return ports