mirror of
https://github.com/FAUSheppy/homelab_gamevault
synced 2025-12-06 06:51:36 +01:00
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
import multiprocessing
|
|
import ipaddress
|
|
import socket
|
|
|
|
def generate_ips_in_subnet():
|
|
'''Get curren relevant subnets'''
|
|
|
|
subnet = "192.168.1.0/24"
|
|
network = ipaddress.ip_network(subnet)
|
|
return [str(ip) for ip in network.hosts()]
|
|
|
|
def check_port(ip_addrees):
|
|
'''Look for FTP Servers on the local-net'''
|
|
|
|
port = 2121
|
|
print("Checking", ip_addrees)
|
|
try:
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
s.settimeout(1)
|
|
s.connect((ip_addrees, port))
|
|
return ip_addrees
|
|
except (socket.timeout, ConnectionRefusedError):
|
|
return None
|
|
finally:
|
|
s.close()
|
|
|
|
def parallel_execution():
|
|
'''Run parallel checks for all addresses'''
|
|
|
|
ip_address_list = generate_ips_in_subnet()
|
|
|
|
pool = multiprocessing.Pool(processes=50)
|
|
results = pool.starmap(check_port, [(ip,) for ip in ip_address_list])
|
|
|
|
# Close the pool
|
|
pool.close()
|
|
pool.join()
|
|
|
|
return results
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
# Execute lambda functions in parallel
|
|
results = parallel_execution()
|
|
|
|
# Print results
|
|
print(list(filter(None, results))) |