对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是否可达的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短