漫游时间的计算工具

Zss 发表于:

在测试cpe的漫游性能的时候,需要用到抓取的报文导出为csv文件来计算差值得到最大的时间差,从而来确定漫游时间

使用方法:

1.测试漫游时间得到的csv文件命名为test.csv和脚本放在一个目录

2,.打开软件输入源ip,目的ip,协议名,来过滤掉不需要的报文

3.回车计算出差值前十的时间

#coding:gbk
import csv
import sys
import os
import time
reload(sys)
sys.setdefaultencoding("gbk")

def get_time(filter1,y_ip,m_ip):
    c =[]
    a =[]
    with open(path,'r+') as file:
        file = csv.reader(file)
        for i in file:
            if i[4] in ['UDP','udp'] and i[2]==str(y_ip) and i[3]==str(m_ip):
                a.append(i[1])
            else:pass
        for i in file:
            if i[4] in ['ICMP','icmp'] and i[2]==str(y_ip) and i[3]==str(m_ip):
                a.append(i[1])
            else:pass
    try:
        for i in range(0,len(a)-1):
            b = float(a[i+1])-float(a[i])
            c.append('%4f'%b)
    except:
        pass
    c = sorted(c)
    c = reversed(c)
    print('时间大小前十:')
    d = []
    t=1
    for i in c:
        d.append(i)
    for i in d[:10]:
        i = int(float(i)*1000)
        print('{}. {}ms'.format(str(t),i))
        t+=1

if __name__ == '__main__':
    path = sys.argv[0]
    path = os.path.split(path)[0]+'/test.csv'
    print('---------------------------------------------------------------------')
    print('                        计算漫游时间                      ')
    print('使用方法:1.将需要计算的csv文件放到脚本同一个目录下,命名为:test.csv')
    print('          2.输入一次源ip,目的ip,协议名来过滤                      ')
    print('          3.计算新的csv文件需要替换掉旧的csv文件,再次回车          ')
    print('---------------------------------------------------------------------')
    print('                  1.输入源ip,例如:192.168.99.100')
    y_ip = raw_input()
    print('                  2.输入目的ip,例如:192.168.99.99')
    m_ip = raw_input()
    print('                  3.输入协议名,例如:udp或者icmp')
    filter1 = raw_input('')
    while 1:
        print('----------------------  {}  ------------------------'.format(str(time.ctime())))
        print('                    1.替换掉csv文件可以计算新的csv文件')
        raw_input('                    2.输入回车计算漫游时间!')
        get_time(filter1,y_ip,m_ip)