python多线程ping和arpping扫描工具,pythonarpping,#/usr/bin/en
文章由Byrx.net分享于2019-03-23 05:03:59
python多线程ping和arpping扫描工具,pythonarpping,#/usr/bin/en
#/usr/bin/env python#--encoding=UTF-8--#a simpl ping scanerimport subprocessfrom threading import Threadfrom Queue import Queueimport renum_ping_threads = 3num_arp_threads = 3in_queue = Queue()out_queue = Queue()#ips = ["10.65.10.50","10.65.10.80"]ips = ["你要扫描的ip范围"]def ping_scan(i,iq,oq): while True: ip = iq.get() print "[*]Thread %s: Pinging %s" % (i,ip) ret = subprocess.call("ping -c 1 %s" % ip,shell = True,stdout = open('/dev/null','w'),stderr = subprocess.STDOUT) if ret == 0: print "[*]%s: is alive." % ip oq.put(ip) else: print "[*]%s: did not respond" % ip iq.task_done()def arping_scan(i,oq): while True: ip = oq.get() p = subprocess.Popen("arping -c 1 %s" % ip,shell = True,stdout = subprocess.PIPE) out = p.stdout.read() result = out.split() pattern = re.compile(".*:.*:.*") macaddr = None for item in result: if re.search(pattern,item): macaddr = item print "[*]IP Address: %s | Mac Address: %s" % (ip,macaddr) oq.task_done()for ip in ips: in_queue.put(ip)for i in range(num_ping_threads): worker = Thread(target = ping_scan,args = (i,in_queue,out_queue)) worker.setDaemon(True) worker.start()for i in range(num_arp_threads): worker = Thread(target = arping_scan,args = (i,out_queue)) worker.setDaemon(True)# worker.Daemon = True worker.start()print "[*]Main Thread Waiting."in_queue.join()out_queue.join()print "[*]Done!"
相关内容
- 用PyQt实现透明桌面时钟小部件!,pyqt桌面时钟部件,#c
- python实现简单的soap客户端,pythonsoap客户端,# $Id: testq
- Python实现简单的web服务器,pythonweb服务器,本代码运行后
- python通过代理服务器访问ftp服务,pythonftp,None
- python高强度密码生成器,python高强度生成器,一个pytho
- python中字典dict的常用操作方法,python字典dict,下面的
- 使用Python27抓取模板之家的CSS模板,python27css,#!/usr/bin
- python获得linux物理内存大小,pythonlinux,python获得linu
- 教案生成器(.doc格式),教案生成器.doc格式,# -*- cod
- Linux环境下监控目录变化的Python代码片段,,这段代码可
评论关闭