微网站开发提供的服务器,wordpress 知识库,河北邯郸邮编,课堂网站开发你好#xff0c;这里是网络技术联盟站。
在昨天的文章中#xff0c;有小伙伴提到对这两天瑞哥提供的Python脚本中涉及的connecthandler和telnetlib两个模块不是太了解#xff0c;想要学习一下#xff1a; 今天瑞哥就安排上#xff01;
其实这两个模块是Python与网络设备…你好这里是网络技术联盟站。
在昨天的文章中有小伙伴提到对这两天瑞哥提供的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(bUsername: )
tn.write(username.encode(ascii) b\n)
tn.read_until(bPassword: )
tn.write(password.encode(ascii) b\n)# 发送命令
tn.write(bshow 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类来建立连接并使用相应的方法来执行操作和获取输出结果。
三、总结
本文给大家介绍了两个重要的知识点
ConnectHandlertelnetlib
ConnectHandler和telnetlib在Python体系的范围中是有差距的 可以看到ConnectHandler属于Paramiko库的一个高级模块而telnetlib是Python标准库中提供的一个模块这个我们需要注意一下。
怎么样这下理解了吗