mirror of
https://github.com/FAUSheppy/homelab_gamevault
synced 2025-12-06 06:51:36 +01:00
wip: poc for local net scan
This commit is contained in:
48
localnetscan.py
Normal file
48
localnetscan.py
Normal file
@@ -0,0 +1,48 @@
|
||||
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)))
|
||||
Reference in New Issue
Block a user