эффективный сканер IP в Python - PullRequest
0 голосов
/ 25 ноября 2018

пытается выполнить сканирование 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()  

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете попробовать использовать ipaddress.hosts (), он возвращает итератор для используемых хостов в сети, после чего вы можете перебирать его.Может быть лучше быть

...