栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

netmiko链接思科WLC无线控制器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

netmiko链接思科WLC无线控制器

文章目录
  • 1. 项目需求
  • 2. netmiko的安装
  • 3. 程序源代码
  • 4. 项目封装

1. 项目需求

工厂的10台AGV小车,经常在某个地方停线,不再运动,需要监控AGV小车的在线情况。查看当前状态下AGV小车连接的具体是哪一个无线AP。
通过资料查询可以采用python 的netmiko扩展包实现思科WLC的连接。

2. netmiko的安装

因为netmiko通过pycharm的setting安装失败,因此需要通过pip install命令直接安装到虚拟环境中。

pip install netmiko --target C:Usersadmin_zhougaPycharmProjectsWLCReadvenvLibsite-packages
3. 程序源代码
#! /user/bin/python
# author Gang ZHou
# date 2022-07-28
# version 1.0
# 功能介绍:
# 1. 项目通过netmiko扩展包通过ssh的方法连接思科WLC无线控制器。
# 2. 通过netmiko建立连接之后,每5s获取一次WLC中客户端的连接情况。
# 3. 将WLC的连接情况保存到文件中,根据日期,每天创建一个新的文件。

from netmiko import ConnectHandler
import time
import sys,  datetime, os


def telnetWLC():
    # 定义一个wlc的连接字典。port 22是ssh的连接端口
    wlc = {
        # 'device_type': 'cisco_ios',
        'device_type': 'cisco_wlc_ssh',
        'host': '192.168.18.253',
        'username': 'cisco',
        'password': 'admin@123',
        'port': 22
    }
    # 通过connectHandler函数建立一个WLC的连接,注意在连接字典前面有两个**。
    with ConnectHandler(**wlc) as ch:
        while True:
            # 构建一个以日期开头的文件名,防止文件太大无法而影响系统效率
            filename = 'WLC' + str(datetime.datetime.now().date()) + ' ' + 'logping.txt'
            # 休眠5秒钟
            time.sleep(5)
            # 判断文件是否存在,文件存在就以追加的方式写入数据,如果文件不存在就创建文件,并向其中写入数据。
            if os.path.exists(filename):
                with open(filename, 'a', encoding='utf-8') as wfile:
                    # 写入时间信息,以判断是何时读取的数据
                    wfile.write(datetime.datetime.now().strftime("%Y-%m-%d, %H:%M:%S"))
                    # 想WLC连接中发送命令‘show client summary ip’ 查询WLC中所有的客户端,并且包含IP地址。然后将返回的信息写入到文件中。
                    wfile.write(ch.send_command("show client summary ip"))
            else:
                with open(filename, 'w', encoding='utf-8') as wfile:
                    wfile.write(datetime.datetime.now().strftime("%Y-%m-%d, %H:%M:%S"))
                    wfile.write(ch.send_command("show client summary ip"))


if __name__ == '__main__':
    telnetWLC()


4. 项目封装

项目代码封装需要使用到一个模块PyInstaller.使用之前需要安装该模块。
在cmd命令行中执行以下代码。
pip install PyInstaller

项目打包需要在cmd命令行中输入命令进行打包。

pyinstaller -F C:Usersadmin_zhougaPycharmProjectsWLCReadWLCRead.py

-F 表示将文件打包为一个exe文件
打包生成的exe文件路径在倒数第二行,默认存放在用户家目录的dist文件夹中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029888.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号