update
This commit is contained in:
+82
-5
@@ -1,6 +1,83 @@
|
||||
import requests
|
||||
import socket
|
||||
import multiprocessing
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
file = open("files/test.jpg", "r")
|
||||
r = requests.post(f"""http://192.168.1.99:8000/admin/1/upload_file""",
|
||||
files={"uploaded_file": file, "patch": ""})
|
||||
print(r.text)
|
||||
|
||||
def pinger(job_q, results_q):
|
||||
"""
|
||||
Do Ping
|
||||
:param job_q:
|
||||
:param results_q:
|
||||
:return:
|
||||
"""
|
||||
DEVNULL = open(os.devnull, 'w')
|
||||
while True:
|
||||
|
||||
ip = job_q.get()
|
||||
|
||||
if ip is None:
|
||||
break
|
||||
|
||||
results_q.put(ip)
|
||||
|
||||
|
||||
def get_my_ip():
|
||||
"""
|
||||
Find my IP address
|
||||
:return:
|
||||
"""
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.connect(("8.8.8.8", 80))
|
||||
ip = s.getsockname()[0]
|
||||
s.close()
|
||||
return ip
|
||||
|
||||
|
||||
def map_network(pool_size=255):
|
||||
"""
|
||||
Maps the network
|
||||
:param pool_size: amount of parallel ping processes
|
||||
:return: list of valid ip addresses
|
||||
"""
|
||||
|
||||
ip_list = list()
|
||||
my_ip = get_my_ip()
|
||||
|
||||
# get my IP and compose a base like 192.168.1.xxx
|
||||
ip_parts = get_my_ip().split('.')
|
||||
base_ip = ip_parts[0] + '.' + ip_parts[1] + '.' + ip_parts[2] + '.'
|
||||
|
||||
# prepare the jobs queue
|
||||
jobs = multiprocessing.Queue()
|
||||
results = multiprocessing.Queue()
|
||||
|
||||
pool = [multiprocessing.Process(target=pinger, args=(jobs, results)) for i in range(pool_size)]
|
||||
|
||||
for p in pool:
|
||||
p.start()
|
||||
|
||||
# cue hte ping processes
|
||||
for i in range(1, 255):
|
||||
jobs.put(base_ip + '{0}'.format(i))
|
||||
|
||||
for p in pool:
|
||||
jobs.put(None)
|
||||
|
||||
for p in pool:
|
||||
p.join()
|
||||
|
||||
# collect he results
|
||||
while not results.empty():
|
||||
ip = results.get()
|
||||
if ip != my_ip:
|
||||
ip_list.append(ip)
|
||||
|
||||
return ip_list
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
print('Mapping...')
|
||||
lst = map_network()
|
||||
print(lst)
|
||||
|
||||
Reference in New Issue
Block a user