пытается выполнить сканирование IP на python в эффективный по времени способ. Я пытаюсь сканировать 192.168.0.0/20 и ~ 1500 хостов живы ... пытаюсь создать что-то, что выполняется менее чем за две минуты ..ниже мой текущий код: .. Есть предложения?Этот код не кажется очень эффективным ..
def check_ping(hostname):
response = os.system("ping -c 1 -W 1 " + hostname+" >/dev/null 2>&1")
if response == 0:
print hostname
pingstatus = True
else:
pingstatus = False
return pingstatus
def ipscan():
output_ip = []
thehost = "192.168."
for i in range(0,16):
host = thehost + str(i) + "."
for j in range(0,256):
newhost = host + str(j)
output_ip.append(newhost)
newhost = host
return output_ip
hosts = ipscan()
num_hosts = len(hosts)
for k in range(num_hosts):
temp = hosts[k]
t=threading.Thread(target=check_ping, args=(temp,))
t.start()