8516830 发表于 2018-8-5 09:14:26

利用python实现IP扫描

import os  
import time
  
import subprocess
  
from concurrent.futures import ThreadPoolExecutor
  
def ping_call(num):
  
    fnull = open(os.devnull, 'w')
  
    ipaddr = 'ping 192.168.11.' + str(num)
  
    result = subprocess.call(ipaddr + ' -n 2', shell=True, stdout=fnull, stderr=fnull)
  
    current_time = time.strftime('%Y%m%d-%H:%M:%S', time.localtime())
  
    if result:
  
      print('时间:{} ip地址:{} ping fall'.format(current_time, ipaddr))
  
    else:
  
      print('时间:{} ip地址:{} ping ok'.format(current_time, ipaddr))
  
    fnull.close()
  

  
if __name__ == '__main__':
  
    start_time = time.time()
  
    thread_pool = ThreadPoolExecutor(20)
  
    ret_lst = []
  
    for i in range(1, 256):
  
      ret = thread_pool.submit(ping_call, i)
  
      ret_lst.append(ret)
  
    thread_pool.shutdown()
  
    for ret in ret_lst:
  
      ret.result()
  
    print('线程池(20)异步-->耗时{:.2f}'.format(time.time() - start_time))
页: [1]
查看完整版本: 利用python实现IP扫描