Python 实现批量PING测试基站管理地址

import re
import subprocess
import datetime
import time
import os
def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符号
    path = path.rstrip("\\")
    # 判断路径是否存在
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录 # 创建目录操作函数
        os.makedirs(path)
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        return False
def check_alive(ip,count=2,timeout=1):
    #ping网络测试,通过调用ping命令,发送一个icmp包,从结果中通过正则匹配是否有100%关键字,有则表示丢包,无则表示正常
    cmd = 'ping -n %d -w %d %s' % (count,timeout,ip)
    p = subprocess.Popen(cmd,
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            shell=True
    )
    result = p.stdout.read()
    result=str(result)
    if 'TTL='in result:
        print('可以ping通 :', ip)
        with open('./data/log'+dtime+'.txt', 'a')as rst_file:
                rst_file.write('可以ping通 :' + ip + '\n')
    elif 'TTL expired'in result:
        print('出现环路  :', ip)
        with open('./data/log'+dtime+'.txt', 'a')as rst_file:
                rst_file.write('出现环路 :'+ip+'\n')
    else:
        print('失联  :', ip)
        with open('./data/log'+dtime+'.txt', 'a')as rst_file:
                rst_file.write('失联 :'+ip+'\n')
if __name__ == "__main__":
    dtime = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
    mkpath = "./data"
    mkdir(mkpath)
    path='./ip.txt'
    isExist = os.path.exists(path)
    if not isExist:
        # 如果不存在则添加ip文本
        print('请在当前路径添加 ip.txt !')
        time.sleep(3)
    else:
        # 如果目录存在则批量ping测试
        with open(path,'r') as f:
            with open('./data/log'+dtime+'.txt', 'a')as rst_file:
                rst_file.write('当前查询时间 :' + dtime + '\n')
            for line in f.readlines():
                ip = line.strip()
                check_alive(ip)
阅读更多
文章标签: python ping 基站
个人分类: python
想对作者说点什么? 我来说一句

批量PING软件

2014年05月15日 40KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭