P叔带你学Python37-Telnet协议telnetlib模块
telnetlib
是 Python 标准库中的一个模块,它提供了 Telnet 协议的客户端功能。使用 telnetlib
模块,我们可以在 Python 中编写脚本来自动化 Telnet 会话,执行命令以及收集输出。
本文将介绍 telnetlib
模块的基本使用以及一些示例。
基本用法
在使用 telnetlib
时,需要先创建一个 Telnet
对象,然后使用该对象进行 Telnet 会话。可以使用以下代码创建一个 Telnet
对象:
import telnetlib tn = telnetlib.Telnet(host, port)
其中 host
是 Telnet 服务器的主机名或 IP 地址,port
是 Telnet 服务器的端口号。
创建 Telnet
对象后,可以使用 read_until()
方法等待服务器发送的数据。可以使用以下代码等待 Telnet 服务器发送的数据:
tn.read_until(b"login: ")
其中 b"login: "
是一个字节数组,用于指定需要等待的字符串。
可以使用 write()
方法向 Telnet 服务器发送数据。例如,可以使用以下代码向 Telnet 服务器发送用户名和密码:
tn.write(username.encode('ascii') + b"\n") tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n")
在登录到 Telnet 服务器后,可以使用 write()
方法执行命令并收集输出。例如,可以使用以下代码执行 ls
命令并收集输出:
tn.write(b"ls\n") output = tn.read_all().decode('ascii') print(output)
以上是 telnetlib
模块的基本用法,接下来我们将看一些示例。
示例
示例:Telnet 登录并执行命令
以下示例演示如何使用 telnetlib
模块登录到 Telnet 服务器并执行命令:
import telnetlib # 配置 Telnet 服务器的 IP 地址和端口号 HOST = "localhost" PORT = 23 # 配置 Telnet 登录信息 username = "admin" password = "password" # 创建 Telnet 对象 tn = telnetlib.Telnet(HOST, PORT) # 等待服务器发送登录提示 tn.read_until(b"login: ") # 发送用户名 tn.write(username.encode('ascii') + b"\n") # 等待服务器发送密码提示 tn.read_until(b"Password: ") # 发送密码 tn.write(password.encode('ascii') + b"\n") # 执行命令并收集输出 tn.write(b"ls\n") output = tn.read_all().decode('ascii') print(output) # 关闭 Telnet 连接 tn.close()
下面是Python telnetlib框架的更多例子:
1. 实现交互式命令行
telnetlib可以实现交互式的命令行操作。下面是一个简单的示例,演示了如何连接到远程设备,执行命令并获取输出:
import telnetlib HOST = "192.168.0.1" user = "admin" password = "password" tn = telnetlib.Telnet(HOST) tn.read_until(b"login: ") tn.write(user.encode('ascii') + b"\n") tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n") tn.write(b"enable\n") tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n") tn.write(b"show interfaces\n") output = tn.read_all().decode('ascii') print(output)
在这个例子中,我们首先连接到远程设备,然后输入用户名和密码以登录。接着,我们输入enable
命令,再次输入密码以获取管理员权限。最后,我们执行show interfaces
命令,并将输出打印出来。
2. 实现交互式配置
除了执行命令,我们也可以使用telnetlib实现交互式的配置。下面是一个简单的示例,演示了如何连接到远程设备,进入配置模式并配置接口:
import telnetlib HOST = "192.168.0.1" user = "admin" password = "password" tn = telnetlib.Telnet(HOST) tn.read_until(b"login: ") tn.write(user.encode('ascii') + b"\n") tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n") tn.write(b"enable\n") tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n") tn.write(b"configure terminal\n") tn.write(b"interface ethernet 1/1\n") tn.write(b"description Link to Switch A\n") tn.write(b"no shutdown\n") tn.write(b"exit\n") tn.write(b"exit\n") output = tn.read_all().decode('ascii') print(output)
在这个例子中,我们首先连接到远程设备,然后输入用户名和密码以登录。接着,我们输入enable
命令,再次输入密码以获取管理员权限。然后,我们输入configure terminal
命令进入配置模式,并使用interface ethernet 1/1
命令进入以太网接口1/1的配置界面。在这个界面中,我们使用description
命令配置了接口的描述,使用no shutdown
命令开启了接口,并使用exit
命令退出了接口配置界面和配置模式。最后,我们将所有输出打印出来。
---------------------------END---------------------------
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
P叔带你学Python37-Telnet协议telnetlib模块相关推荐
- 黑猫带你学UFS协议第17篇:全网最全UFS RPMB LU详解(重放保护逻辑单元)
1 前言 1.1 声明 本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,已加入原创侵权保护,禁止私自转载. 文章所在专栏:<黑猫带你学 ...
- 黑猫带你学UFS协议第1篇:全网最全UFS协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)
文/黑猫学长 1 作者想说 笔者本人从事于存储芯片行业多年,对eMMC/UFS/SD等芯片有深入研究,协议尤甚.而今看来,UFS协议在整个存储产品中(包括U盘.SPI.SD卡,NM卡.emmc.SSD ...
- 黑猫带你学UFS协议第16篇:UFS如何配置逻辑单元(LU Management)
本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,禁止私自转载. 文章所在专栏:<黑猫带你学:UFS协议详解> 1 特性 不同的L ...
- 黑猫带你学UFS协议第11篇:两万字详解UFS协议信息单元(UPIU)
1 前言 本文依据UFS3.1 JEDEC协议.网络资料及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,禁止私自转载. 本文结合UFS3.1 JEDEC协议手册查看效果更佳. ...
- 黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim...)
文/黑猫学长 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,已加入原创维权,禁止私自转载. 文章所在专栏:<黑猫带你学:eMMC协议详 ...
- 黑猫带你学UFS协议第3篇:UFS简介
本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,已加入原创侵权保护,禁止私自转载. 文章所在专栏:<黑猫带你学:UFS协议详解> ...
- 黑猫带你学eMMC协议第8篇:eMMC供电情况详解(power)
1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,禁止私自转载. 文章所在专栏:<黑猫带你学:eMMC协议详解&g ...
- 黑猫带你学eMMC协议第7篇:eMMC各种寄存器详解(register)
1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,禁止私自转载. 文章所在专栏:<黑猫带你学:eMMC协议详解&g ...
- [元带你学: eMMC协议 7] eMMC 概述 与 eMMC总线协议
依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载. 所在专栏 <元带你学: eMMC协议> 前言 全文4500 字, 全文介绍eMMC 内部系统框架, Bus 总线宽度, ...
- 【逗老师带你学IT】HUAWEI华为防火墙自动化运维Python ssh管理网络设备
本文,介绍一种.通过Django框架,搭建API服务器,并通过此API服务器管理华为防火墙.并以此衍生出,通过Django+Python+ssh的方式管理网络设备的方法. 关于Django环境的搭建, ...
最新文章
- 【c语言】求三个数的最小数
- C++学习路线(最全资源整合)
- 【Linux】一步一步学Linux——shopt命令(214)
- list1与list2求交集的方法总结!
- python如何操作oracle数据库_python操作oracle数据库
- oracle数据库、数据表的创建与管理 实验笔记二
- Java文件类– java.io.File
- 如何在 Linux 中运行.exe 程序
- 学Java不得不看的技术书
- 快速批量打印工程图,这个工具少不了
- 将图片url转为base64的方法
- java itext read a pdf file_java - 使用iText7读取PDF时遇到的问题(使用iText5) - 堆栈内存溢出...
- linux环境下questasim 10.7的安装步骤
- 【华为OD机试真题 Java】找出通过车辆最多颜色 (A卷2022Q4)
- 主动雷达和被动雷达的区别
- NumPy 数值计算基础
- phpnow测试PHP源码,phpnow php探针环境检测代码
- 看牛人如何学习JAVA-如何学习java
- 【编译原理】-- 第二章(三)(文法的化简改造、无用产生式、产生式的消除、文法的其他表示方法、例题)
- 毕设分享SSM 网上购物商城系统(含源码+论文)
热门文章
- 重庆设计行业利润虚高,如何合理进行税收筹划,减轻税负压力
- 推动行业健康化转型,TCL冰箱获AWE艾普兰金口碑奖
- 无线蓝牙耳机应该买哪一款?发烧友推荐这几款蓝牙耳机
- 博客项目(前台功能实现)
- Bug记录--关于浏览器打开后会自动跳转到hao123的解决方案
- 第8章第13节:制作企业宣传册的企业文化幻灯片 [PowerPoint精美幻灯片实战教程]
- excel合并单元格函数
- 自学前端第二天:HTML基础知识提前汇总
- Python报错:SyntaxError: invalid character ‘,‘ (U+FF0C)
- macbook docker搭建hadoop集群