python中使用subprocess來使用shell
關于threading的用法
from __future__ import print_functionimport subprocessimport threadingdef is_reachable(ip): if subprocess.call(["ping", "-c", "2", ip])==0:#只發送兩個ECHO_REQUEST包 print("{0} is alive.".format(ip)) else: print("{0} is unalive".format(ip))if __name__ == "__main__": ips = ["www.baidu.com","192.168.0.1"] threads = [] for ip in ips: thr = threading.Thread(target=is_reachable, args=(ip,))#參數必須為tuple形式 thr.start()#啟動 threads.append(thr) for thr in threads: thr.join()改良 :使用Queue來優化(FIFO)
from __future__ import print_functionimport subprocessimport threadingfrom Queue import Queuefrom Queue import Emptydef call_ping(ip): if subprocess.call(["ping", "-c", "2", ip])==0: print("{0} is reachable".format(ip)) else: print("{0} is unreachable".format(ip))def is_reachable(q): try: while True: ip = q.get_nowait()#當隊列為空,不等待 call_ping(ip) except Empty: passdef main(): q = Queue() args = ["www.baidu.com", "www.sohu.com", "192.168.0.1"] for arg in args: q.put(arg) threads = [] for i in range(10): thr = threading.Thread(target=is_reachable, args=(q,)) thr.start() threads.append(thr) for thr in threads: thr.join()if __name__ == "__main__": main()以上這篇對python判斷ip是否可達的實例詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答