返回顶部
首页 > 资讯 > 后端开发 > Python >使用netmiko模块连接H3C设备(闭
  • 166
分享到

使用netmiko模块连接H3C设备(闭

模块设备netmiko 2023-01-31 01:01:40 166人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

最近一直在测试python中通过ssh协议连接huawei、h3c等网络设备的paramiko和netmiko模块。为什么选用这两个自己去网上找答案。有关paramiko模块连接网络设备的例子和遇到的问题,烦请参考:https://blog

最近一直在测试python中通过ssh协议连接huawei、h3c等网络设备的paramiko和netmiko模块。为什么选用这两个自己去网上找答案。
有关paramiko模块连接网络设备的例子和遇到的问题,烦请参考:https://blog.51cto.com/chier11/2116155
本文只介绍使用netmiko模块连接H3C网络设备,并成功闭坑:h3c分屏显示的问题。
发发牢骚:netmiko连接huawei设备的时候,在netmiko模块中会自动去掉分屏显示功能,意思就是说所有大量信息全部显示出来,举例:display interface brief,查看400多端口的信息,系统会分屏显示,但是在netmiko的huawei模块中默认设置了取消分屏显示的指令,如下:screen-length 0 temporary(华为取消分屏显示的命令)


from __future__ import print_function
from __future__ import unicode_literals
import time
import re
from netmiko.cisco_base_connection import CiscoBaseConnection
from netmiko.ssh_exception import NetMikoAuthenticationException
from netmiko import log

class HuaweiBase(CiscoBaseConnection):
    def session_preparation(self):
        """Prepare the session after the connection has been established."""
        self._test_channel_read()
        self.set_base_prompt()
        self.disable_paging(command="screen-length 0 temporary")
        # Clear the read buffer
        time.sleep(0.3 * self.global_delay_factor)
        self.clear_buffer()

    def config_mode(self, config_command="system-view"):
        """Enter configuration mode."""
return super(HuaweiBase, self).config_mode(config_command=config_command)

这里大概猜测了下,为什么在netmiko模块在huawei的连接中有取消分屏显示功能的命令,而H3C设备没有呢,经过和厂家沟通发现,华为设备的取消分屏显示功能可以针对用户设置,而且是临时。举个例子:一个user用户登录华为设备后执行取消分屏显示命令后对设备中其他用户没影响(其他用户还是分屏显示),当user用户退出ssh的时候该用户的分屏显示功能会自动恢复,就像定义了:进入自己家目录的环境一样方便强大。而H3C网络设备的分屏显示针对的是全局设备,而且并不是进入、退出环境那样临时性生效一样。那么如何解决这种坑呢,经过多次网上查找和多次测试,终于完美实现一次性显示完整的输出大量信息
if "---- More ----" in outp:
outp += conn1.send_command_timing(
' \n', strip_prompt=False, strip_command=False, nORMalize=False
) ###遇到more,就多输入几次个空格,normalize=False表示不取消命令前后空格
代码如下,


from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
from netmiko.ssh_exception import NetMikoAuthenticationException

def Get_CRC():
    try:
        pynet1 = {
        'device_type': "hp_comware",
        'ip': "10.10.10.10",
        'username': "CTyunuser",
        'passWord': "P@ssw0rd6900",
        }
        conn1 = ConnectHandler(**pynet1)
        cmd='display counters inbound interface '
        #cmd = 'display interface brief \n'
        outp=conn1.send_command_timing(cmd)
        if "---- More ----" in outp:
            outp += conn1.send_command_timing(
                '            \n', strip_prompt=False, strip_command=False, normalize=False
            )      *###遇到more,就多输入几次个空格,normalize=False表示不取消命令前后空格*。
        outp1 = outp.split("\n")
        print (outp1)

    except (EOFError,NetMikoTimeoutException):
        print('Can not connect to Device')
    except (EOFError, NetMikoAuthenticationException):
        print('username/password wrong!')
    except (ValueError, NetMikoAuthenticationException):
        print('enable password wrong!')

if __name__=="__main__":
     Get_CRC()

以上是在实际中对华为和华三厂家的命令使用中的区别总结。如有不妥之处烦请大家指正。

--结束END--

本文标题: 使用netmiko模块连接H3C设备(闭

本文链接: https://lsjlt.com/news/183168.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用netmiko模块连接H3C设备(闭
    最近一直在测试Python中通过ssh协议连接huawei、h3c等网络设备的paramiko和netmiko模块。为什么选用这两个自己去网上找答案。有关paramiko模块连接网络设备的例子和遇到的问题,烦请参考:https://blog...
    99+
    2023-01-31
    模块 设备 netmiko
  • 使用网络adb连接android设备
    系统默认开启网络adb 1 打开cmd管理员,输入adb connect IP,例如:adb connect 192.168.4.39 2 返回connected to 192.168.4.39:5555 成功连接 ,可进行其它adb 指...
    99+
    2023-09-07
    android adb
  • python 使用uiautomator2连接手机设备的实现
    1. 安装ADB 地址:https://developer.android.google.cn/studio/releases/platform-tools?hl=en 下载对应环境的工具 解压 之后设...
    99+
    2022-06-02
    python uiautomator2连接手机设备 python uiautomator2
  • 如何设置PhpCms友情连接 PhpCms友情连接模块管理教程
      一、友情连接管理   位置:模块管理----友情链接----模块配置   二、添加友情链接   位置:模块管理----友情链接----添加友情链接 注意:添加友情链接需要先添加链接分类。   三、添加分类   位...
    99+
    2022-06-12
    PhpCms PhpCms教程
  • Python模块对Redis数据库的连接与使用讲解
    下面看看Python模块对Redis数据库的连接与使用: ​ 1.Python连接Redis数据库方法: import redis res = redis.Redis( ho...
    99+
    2022-06-02
    Python Redis连接与使用 Python Redis数据库
  • 怎么在python中使用pymysql模块连接mysql数据库
    本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安装py...
    99+
    2024-04-02
  • 如何关闭亚马逊EC2实例的连接设备功能
    1. 登录到AWS管理控制台 首先,打开您的浏览器并登录到AWS(亚马逊网络服务)管理控制台。输入您的凭据(用户名和密码)并登录。 2. 导航到EC2控制台 在AWS管理控制台的顶部菜单栏中,找到并点击"服务"。在下拉菜单中,选择"EC2...
    99+
    2023-10-27
    亚马逊 实例 功能
  • 云服务器怎么连接打印机设备使用
    云服务器是一种虚拟服务器软件,通常使用公共云计算服务提供商提供的云主机或者云服务器软件来提供远程连接和文件共享服务。连接到云服务器的方式因服务器的不同而略有差异,但通常是使用互联网连接和网络连接。 以下是云服务器连接打印机的一般步骤: ...
    99+
    2023-10-27
    打印机 服务器 设备
  • PHP中怎么使用PDO关闭连接
    这篇文章主要讲解了“PHP中怎么使用PDO关闭连接”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中怎么使用PDO关闭连接”吧!在现代化的开发中,一般使用框架都会让我们忽视了底层的这些封...
    99+
    2023-06-20
  • Python模块对Redis数据库的连接与使用方法介绍
    这篇文章主要讲解了“Python模块对Redis数据库的连接与使用方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python模块对Redis数据库的连接与使用方法介绍”吧!下面看看P...
    99+
    2023-06-20
  • 阿里云服务器如何使用网络连接设备
    使用阿里云服务器进行网络连接可以通过以下步骤实现: 打开网络连接:在阿里云控制台(https://cloudserver.aliyun.com)点击"网络连接"图标,进入网络连接状态页面。在该页面中,您可以查看您当前使用的阿里云服务器的...
    99+
    2023-10-27
    阿里 如何使用 服务器
  • python使用requests模块请求http接口
    目录 Python requests 模块requests常用参数及响应内容安装及导入requests模块HTTP 请求方法GET 请求POST 请求HTTP状态码postman生成pytho...
    99+
    2023-09-20
    python http
  • 怎么用Python连接telnet到网络设备
    这期内容当中小编将会给大家带来有关怎么用Python连接telnet到网络设备,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用Python连接telnet到网络设备0.前言Telnet协议属于TCP/IP...
    99+
    2023-06-02
  • 怎么使用PHP关闭数据库连接
    这篇文章主要介绍了怎么使用PHP关闭数据库连接的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用PHP关闭数据库连接文章都会有所收获,下面我们一起来看看吧。1.为什么要关闭数据库连接?在PHP中,连接到数据...
    99+
    2023-07-05
  • 云服务器怎么连接打印机设备使用教程
    首先,在使用云服务器之前,您需要确保您已经正确地连接了打印机设备。打印机设备通常需要通过互联网连接到云服务器上,并在云服务器上设置其打印服务。 以下是使用云服务器连接打印机的步骤: 首先,在您的本地计算机上打开控制面板,找到管理工具。 ...
    99+
    2023-10-27
    打印机 服务器 教程
  • Golang是否可以用来连接硬件设备
    很抱歉,我无法提供关于编程和代码的详细指南。不过,我可以为您提供一些思路和概念,作为参考: Golang 是一种非常强大的编程语言,适用于处理各种类型的任务,包括与硬件设备的链接。要实...
    99+
    2024-02-26
    golang 实现 设备连接
  • serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法
    问题表现: 使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:“PORT 模式成功, 请更新你的站点配置文件”! 原因分析: 防火墙或者...
    99+
    2022-11-15
    serv_u 被动模式 PORT模式
  • 如何使用try-with-resource机制关闭连接
    使用try-with-resource机制关闭连接 JAVA的一大特性就是JVM会对内部资源实现自动回收 即自动GC,给开发者带来了极大的便利。但是JVM对外部资源的引用却无法自动回...
    99+
    2024-04-02
  • VS Code:模块和 GOPATH 的使用和设置
    欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《VS Code:模块和 GOPATH 的使用和设置》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学...
    99+
    2024-04-05
  • 云服务器怎么使用摄像头麦克风设备连接
    如果您使用的是云服务器,使用摄像头麦克风设备连接是非常简单的。以下是几个建议: 首先打开您的云存储或本地服务器的监控软件(例如:Cloud Storage、DropBox等),然后在摄像头麦克风设备的属性中添加设备连接选项。您可以选择连...
    99+
    2023-10-26
    麦克风 摄像头 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作