对python判断ip是否可达的实例详解
python中使用subprocess来使用shell
关于threading的用法
from__future__importprint_function importsubprocess importthreading defis_reachable(ip): ifsubprocess.call(["ping","-c","2",ip])==0:#只发送两个ECHO_REQUEST包 print("{0}isalive.".format(ip)) else: print("{0}isunalive".format(ip)) if__name__=="__main__": ips=["www.baidu.com","192.168.0.1"] threads=[] foripinips: thr=threading.Thread(target=is_reachable,args=(ip,))#参数必须为tuple形式 thr.start()#启动 threads.append(thr) forthrinthreads: thr.join()
改良:使用Queue来优化(FIFO)
from__future__importprint_function importsubprocess importthreading fromQueueimportQueue fromQueueimportEmpty defcall_ping(ip): ifsubprocess.call(["ping","-c","2",ip])==0: print("{0}isreachable".format(ip)) else: print("{0}isunreachable".format(ip)) defis_reachable(q): try: whileTrue: ip=q.get_nowait()#当队列为空,不等待 call_ping(ip) exceptEmpty: pass defmain(): q=Queue() args=["www.baidu.com","www.sohu.com","192.168.0.1"] forarginargs: q.put(arg) threads=[] foriinrange(10): thr=threading.Thread(target=is_reachable,args=(q,)) thr.start() threads.append(thr) forthrinthreads: thr.join() if__name__=="__main__": main()
以上这篇对python判断ip是否可达的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。