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