Python网络设备脚本中经常使用的connecthandler和telnetlib是什么意思?

简介: Python网络设备脚本中经常使用的connecthandler和telnetlib是什么意思?

你好,这里是网络技术联盟站。

在昨天的文章中,有小伙伴提到对这两天瑞哥提供的Python脚本中涉及的connecthandler和telnetlib两个模块不是太了解,想要学习一下:

今天瑞哥就安排上!

其实这两个模块是Python与网络设备交互最常用的两个模块,当然了,还有其他的哈,那么今天我们就针对性的讲一下吧,希望不仅仅是“死鱼非命”这位小伙伴能够理解,在看的各位朋友都能理解两个模块该如何使用。

让我们直接开始!

一、ConnectHandler

Python的Paramiko库提供了一个叫做ConnectHandler的模块,可以简化SSH连接和命令执行的代码,使得我们能够更加方便地与网络设备交互。

1.1 ConnectHandler模块介绍

ConnectHandler模块是Paramiko库提供的一个高级模块,它封装了SSH连接、命令执行和输出解析等功能,使得我们能够更加方便地与SSH服务器进行交互。

通过ConnectHandler模块,我们可以:

  • 建立SSH连接
  • 发送命令
  • 获取输出结果
  • 关闭SSH连接

ConnectHandler模块支持的设备类型非常丰富,包括华为、H3C、锐捷、Cisco、Juniper、HP、Fortinet等众多品牌的设备。

1.2 使用示例

下面我们来看一个简单的使用示例,该示例使用ConnectHandler模块连接到一个Cisco路由器,并执行一个命令:

from netmiko import ConnectHandler

# 定义设备信息
device = {
    'device_type': 'cisco_ios',
    'ip': '192.168.1.1',
    'username': 'username',
    'password': 'password'
}

# 建立SSH连接
with ConnectHandler(**device) as conn:
    # 发送命令
    output = conn.send_command('show ip interface brief')

# 输出结果
print(output)

在上面的代码中,我们首先定义了一个字典类型的device变量,其中包含了连接设备的必要信息,比如设备类型、IP地址、用户名和密码等。接着,我们使用ConnectHandler模块建立SSH连接,并使用with语句来确保连接被正确关闭。在连接建立后,我们发送了一个命令show ip interface brief,并使用send_command方法来执行该命令并获取输出结果。最后,我们输出了命令的输出结果。

除了使用send_command方法来发送单个命令外,ConnectHandler模块还提供了一系列其他方法,如send_config_set、send_config_from_file等,可以用于发送多个配置命令或从文件中加载配置命令。

1.3 小结

ConnectHandler模块是Python Paramiko库提供的一个高级模块,它封装了SSH连接、命令执行和输出解析等功能,使得我们能够更加方便地与SSH服务器进行交互。在使用ConnectHandler模块时,我们只需要提供设备的必要信息,就可以通过简单的代码来实现SSH连接和命令执行。这大大简化了SSH交互的代码编写,提高了我们的工作效率。

二、telnetlib

Python的telnetlib库提供了一个telnet客户端,可以用于与telnet服务器进行交互。

2.1 telnetlib库介绍

telnetlib库是Python标准库中提供的一个模块,它提供了一个telnet客户端,可以用于与telnet服务器进行交互。

通过telnetlib库,我们可以:

  • 建立telnet连接
  • 发送命令
  • 获取输出结果
  • 关闭telnet连接

2.2 使用示例

下面我们来看一个简单的使用示例,该示例使用telnetlib库连接到一个telnet服务器,并执行一个命令:

import telnetlib

# 定义设备信息
host = '192.168.1.1'
username = 'username'
password = 'password'

# 建立telnet连接
tn = telnetlib.Telnet(host)

# 登录
tn.read_until(b'Username: ')
tn.write(username.encode('ascii') + b"\n")
tn.read_until(b'Password: ')
tn.write(password.encode('ascii') + b"\n")

# 发送命令
tn.write(b"show ip interface brief\n")
output = tn.read_all().decode('ascii')

# 关闭连接
tn.close()

# 输出结果
print(output)

在上面的代码中,我们首先定义了一些必要的设备信息,如telnet服务器的IP地址、用户名和密码等。接着,我们使用telnetlib.Telnet类建立telnet连接,并使用read_until方法和write方法登录到服务器。在登录后,我们使用write方法发送了一个命令show ip interface brief,并使用read_all方法获取输出结果。最后,我们关闭了telnet连接,并输出了命令的输出结果。

除了使用read_all方法来获取输出结果外,telnetlib库还提供了一系列其他方法,如read_until、read_eager、read_some等,可以用于读取不同形式的输出。

2.3 小结

telnetlib库是Python标准库中提供的一个模块,它提供了一个telnet客户端,可以用于与telnet服务器进行交互。通过telnetlib库,我们可以实现telnet连接的建立、命令的发送和输出结果的获取等功能。在使用telnetlib库时,我们需要使用telnetlib.Telnet类来建立连接,并使用相应的方法来执行操作和获取输出结果。

三、总结

本文给大家介绍了两个重要的知识点:

  • ConnectHandler
  • telnetlib

ConnectHandler和telnetlib在Python体系的范围中是有差距的:

可以看到ConnectHandler属于Paramiko库的一个高级模块,而telnetlib是Python标准库中提供的一个模块,这个我们需要注意一下。

怎么样,这下理解了吗?

目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
130 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
349 55
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
42 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
200 61
|
4天前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
52 20
|
1月前
|
物联网 Python
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
|
24天前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
49 14
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
9天前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
19 0
|
1月前
|
存储 监控 安全
网络设备日志记录
网络设备日志记录是追踪设备事件(如错误、警告、信息活动)的过程,帮助IT管理员进行故障排除和违规后分析。日志详细记录用户活动,涵盖登录、帐户创建及数据访问等。为优化日志记录,需启用日志功能、管理记录内容、区分常规与异常活动,并使用专用工具进行事件关联和分析。集中式日志记录解决方案可收集并统一管理来自多种设备和应用的日志,提供简化搜索、安全存储、主动监控和更好的事件可见性,增强网络安全。常用工具如EventLog Analyzer能灵活收集、存储和分析日志,确保高效管理。

热门文章

最新文章