日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程ping

發布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程ping 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[背景]用來對IDC狀態測試的程序
[腳本如下:]
#!/usr/bin/env python
#Create by badboy
#2009/11/22

'''multithreading ping for checking IDC status!'''

import threading
import os
import time

size = ('20','2000')
conf_file="data.ini"
log_file ="result.log"
lineip=[]
linemn=[]

class MyThread(threading.Thread):
??? def __init__(self, func, dip):
??????? threading.Thread.__init__(self)
??????? self.func = func
??????? self.args = dip

??? def run(self):
??????? apply(self.func, self.args)

def OpenFile():
??? fp=file(conf_file)
??? for line in fp:
???????? lines=line.split("=")
???????? linemn.append(lines[0].strip())
???????? lineip.append(lines[1].strip())
??? return lineip,linemn
??? fp.close()

def ToLog(*results):
??? result=""
??? for lineresult in results:
??????? result=result+lineresult+","
??? result=result[0:-1]+"\n"
??? fp=file(log_file,'a')
??? fp.write(result)
??? fp.close()

def Getime():
??? return time.strftime("%Y/%m/%d %X")

def Ping(psize,dip,idcname):
??????? pingstr="ping -c 10 -s "+psize+" "+dip?
??????? Process(pingstr,idcname,dip,psize)

def Process(pingstr,idcname,dip,psize):
??? strping = pingstr
??? idc = idcname
??? idcip = dip
??? packsz = psize
??? result = os.popen(pingstr).readlines()
??? cur_time=Getime()
??? result2=str(result[-1].strip())
??? if not result2.endswith('loss'):
??????? totalloss=result[-2].split(",")[2].split('%')[0]
??????? result3=result[-1].split("=")[1].split('/')
??????? ToLog(idc,idcip,cur_time,packsz,result3[0],result3[1],result3[2],totalloss)
??? else:
??????? cur_time=Getime()
??????? ToLog(idc,idcip,cur_time,packsz,'0','0','0','100')
def main():
??? threads = []
??? ipmn=OpenFile()
??? ip=ipmn[0]
??? idcname=ipmn[1]
??? nloops = range(len(ip))

??? for i in nloops:
??????? for psize in size:
??????????? t = MyThread(Ping,(psize,ip[i],idcname[i]))
??????????? threads.append(t)

??? threadnum=range(len(threads))
??? for i in threadnum:
??????? threads[i].start()

??? for i in threadnum:
??????? threads[i].join()


if __name__ == '__main__':

??? main()



本文轉自hahazhu0634 51CTO博客,原文鏈接:http://blog.51cto.com/5ydycm/231835,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的多线程ping的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。