python一分钟认识条件判断
对python判断ip是否可达的实例详解python中使用subprocess来使用shell
关于threading的用法
|
from __future__ import print_function import subprocess import threading def 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_function import subprocess import threading from Queue import Queue from Queue import Empty def 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: pass def 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是否可达的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/csdn2798694115/article/details/79941619