码迷,mamicode.com
首页 > 编程语言 > 详细

超级ping(多线程版)

时间:2018-11-03 21:04:19      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:reading   bin   rgs   cal   学校   err   import   pen   set   

 

发现学校公共wifi的ip段是10.1.0-255.0-255段的,还是之前的思路批量ping一波。

其实可以使用nmap的。但是脚本写都写了。是吧。你懂的。

 1 #!/usr/bin/env python
 2 #encoding:utf-8
 3 
 4 from threading import Thread  
 5 import subprocess  
 6 from Queue import Queue  
 7 
 8 num_threads=10
 9 ips = []
10 for a in range(256):
11     for b in range(256):
12         ip = "10.1."+str(a)+"."+str(b)
13         ips.append(ip)
14 
15 q = Queue()
16 def pingme(i,queue):
17     while True:  
18         ip=queue.get()
19         ret=subprocess.call(ping -c 1 %s % ip,shell=True,stdout=open(/dev/null,w),stderr=subprocess.STDOUT)  
20         if ret==0:  
21             print \033[31m%s UP\033[0m %ip  
22         elif ret==1:
23             print %s is down...%ip  
24         queue.task_done()  
25 
26 #start num_threads threads  
27 for i in range(num_threads):  
28     t=Thread(target=pingme,args=(i,q))  
29     t.setDaemon(True)  
30     t.start()
31 
32 for ip in ips: 
33     q.put(ip)
34 q.join();
35 print Done

 

超级ping(多线程版)

标签:reading   bin   rgs   cal   学校   err   import   pen   set   

原文地址:https://www.cnblogs.com/nul1/p/9901942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!