ping包測試內容寫入文件,並使用python對相應的結果進行統計分析


一、ping包測試內容寫入log文件,bat腳本如下:

@ECHO OFF
%~d0
cd %cd%\
start CMD.EXE /C "ping.exe 192.168.1.21  >>1.21.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.45  >>1.45.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.77  >>1.77.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.79  >>1.79.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.114 >>1.114.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.120 >>1.120.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.121 >>1.121.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.113 >>1.113.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.116 >>1.116.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.119 >>1.119.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.117 >>1.117.log" -n 300

二、對生成的.Log文件進行分析並將數據存儲到excel中,代碼如下:

import re,os,time
import xlwt
import os

#獲取當前文件夾下擴展名為.log的文件名列表
def readFileList():
    items = os.listdir(".")
    newList = []
    for names in items:
      if names.endswith(".log"):
        newList.append(names)
    return newList

#獲取log文件中的統計信息
def readMsg(file):
    #for i in fileList:
    f = open(file,'r')
    fileMsg = f.readlines()
    ipMatch2 = re.search(r'(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)', fileMsg[-2])
    if ipMatch2==None:
        ipMatch = re.search(r'(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)',fileMsg[-4])
        IP = ipMatch.group()
        #print(IP)
        dataPackage = fileMsg[-3:-2][0].strip('\n').replace(" ","")
        dataPackageClient = dataPackage.split('')[0].split(':')[1]
        dataPackageSever = dataPackage.split('')[1]
        dataPackageLose = dataPackage.split('')[2]
        #print(dataPackage)
        delayTime = fileMsg[-1].strip('\n').replace(" ","")
        delayTimeMin = delayTime.split('')[0]
        delayTimeMax = delayTime.split('')[1]
        delayTimeAvg = delayTime.split('')[2]
        #print(delayTime)
    else:
        IP = ipMatch2.group()
        dataPackageClient = 'ping fail'
        dataPackageSever = None
        dataPackageLose = None
        delayTimeMin = None
        delayTimeMax = None
        delayTimeAvg = None
        #print(IP)
        #print("ping fail")
    return [IP, dataPackageClient,dataPackageSever,dataPackageLose,delayTimeMin,delayTimeMax,delayTimeAvg]
    #print('---------------------------------------')

#將得到的統計信息寫入到excel表格中
def writeData():
    newTable = 'ping.xls'
    wb = xlwt.Workbook(encoding='utf-8')
    ws = wb.add_sheet('ping', cell_overwrite_ok=True)  # 創建表
    headData = ['IP', '已發送','已接收','丟失','最短','最長','平均']
    for colnum in range(0, 7):
        ws.write(0, colnum, headData[colnum], xlwt.easyxf('font:bold on'))
    index = 1
    for i in range(len(dataMsg)):   #excel的列數
        for j in range(0,7):        #excel的行數
        # print RSSIt[i]
            ws.write(index, j, dataMsg[i][j])
        index += 1
    wb.save(newTable)

if __name__ == '__main__':
    fileList = readFileList()
    print(fileList)
    dataMsg = []
    for file in fileList:
        dataMsg.append(readMsg(file))
    print(dataMsg)
    writeData()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM