0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中telnetlib模块的基本使用

网络技术干货圈 来源:网络技术干货圈 2023-05-04 14:27 次阅读

telnetlib 是 Python 标准库中的一个模块,它提供了 Telnet 协议的客户端功能。使用 telnetlib 模块,我们可以在 Python 中编写脚本来自动化 Telnet 会话,执行命令以及收集输出。

本文将介绍 telnetlib 模块的基本使用以及一些示例。

基本用法

在使用 telnetlib 时,需要先创建一个 Telnet 对象,然后使用该对象进行 Telnet 会话。可以使用以下代码创建一个 Telnet 对象:

importtelnetlib

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"
")
tn.read_until(b"Password:")
tn.write(password.encode('ascii')+b"
")

在登录到 Telnet 服务器后,可以使用 write() 方法执行命令并收集输出。例如,可以使用以下代码执行 ls 命令并收集输出:

tn.write(b"ls
")
output=tn.read_all().decode('ascii')
print(output)

以上是 telnetlib 模块的基本用法,接下来我们将看一些示例。

示例

示例:Telnet 登录并执行命令

以下示例演示如何使用 telnetlib 模块登录到 Telnet 服务器并执行命令:

importtelnetlib

#配置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"
")

#等待服务器发送密码提示
tn.read_until(b"Password:")

#发送密码
tn.write(password.encode('ascii')+b"
")

#执行命令并收集输出
tn.write(b"ls
")
output=tn.read_all().decode('ascii')
print(output)

#关闭Telnet连接
tn.close()

下面是Python telnetlib框架的更多例子:

1. 实现交互式命令行

telnetlib可以实现交互式的命令行操作。下面是一个简单的示例,演示了如何连接到远程设备,执行命令并获取输出:

importtelnetlib

HOST="192.168.0.1"
user="admin"
password="password"

tn=telnetlib.Telnet(HOST)

tn.read_until(b"login:")
tn.write(user.encode('ascii')+b"
")
tn.read_until(b"Password:")
tn.write(password.encode('ascii')+b"
")

tn.write(b"enable
")
tn.read_until(b"Password:")
tn.write(password.encode('ascii')+b"
")

tn.write(b"showinterfaces
")
output=tn.read_all().decode('ascii')

print(output)

在这个例子中,我们首先连接到远程设备,然后输入用户名和密码以登录。接着,我们输入enable命令,再次输入密码以获取管理员权限。最后,我们执行show interfaces命令,并将输出打印出来。

2. 实现交互式配置

除了执行命令,我们也可以使用telnetlib实现交互式的配置。下面是一个简单的示例,演示了如何连接到远程设备,进入配置模式并配置接口

importtelnetlib

HOST="192.168.0.1"
user="admin"
password="password"

tn=telnetlib.Telnet(HOST)

tn.read_until(b"login:")
tn.write(user.encode('ascii')+b"
")
tn.read_until(b"Password:")
tn.write(password.encode('ascii')+b"
")

tn.write(b"enable
")
tn.read_until(b"Password:")
tn.write(password.encode('ascii')+b"
")

tn.write(b"configureterminal
")
tn.write(b"interfaceethernet1/1
")
tn.write(b"descriptionLinktoSwitchA
")
tn.write(b"noshutdown
")
tn.write(b"exit
")
tn.write(b"exit
")

output=tn.read_all().decode('ascii')

print(output)

在这个例子中,我们首先连接到远程设备,然后输入用户名和密码以登录。接着,我们输入enable命令,再次输入密码以获取管理员权限。然后,我们输入configure terminal命令进入配置模式,并使用interface ethernet 1/1命令进入以太网接口1/1的配置界面。在这个界面中,我们使用description命令配置了接口的描述,使用no shutdown命令开启了接口,并使用exit命令退出了接口配置界面和配置模式。最后,我们将所有输出打印出来。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82509
  • TELNET
    +关注

    关注

    0

    文章

    16

    浏览量

    10734
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
  • 标准库
    +关注

    关注

    0

    文章

    29

    浏览量

    7344
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14635

原文标题:网络工程师学Python-Telnet协议telnetlib模块

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    动态库封装成python模块的方法

    之前的文章 将静态库封装成 python 模块中讲解了如何将静态库封装成 python 模块,静态库封装相对来说还是有点复杂,今天来介绍下动态库封装成
    发表于 07-13 15:24 379次阅读

    python模块安装方法

    Python模块呢?import语句自定义模块可以采用import语句来进行引入,其操作步骤是先导入模块,再调用模块
    发表于 04-04 14:57

    什么是python包、模块和库?

    1. 模块以 .py 为后缀的文件,我们称之为 模块,英文名 Module。模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个
    发表于 03-09 16:48

    python包、模块和库是什么

    1. 模块 以 .py 为后缀的文件,我们称之为 模块,英文名 Module。 模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个
    的头像 发表于 03-09 16:47 2101次阅读

    Python-模块与包

    模块Python 程序架构的一个核心概念
    的头像 发表于 02-16 14:55 548次阅读
    <b class='flag-5'>Python</b>-<b class='flag-5'>模块</b>与包

    解析python模块搜索路径和别名as

    描述** python通过模块搜索路径找到模块文件进行导入。
    的头像 发表于 02-21 10:53 511次阅读

    python中间模块重载介绍

    python通过reload重载模块动态更新最新代码。 ## 1.1 reload
    的头像 发表于 02-21 11:16 381次阅读

    python模块相对导入from和import介绍1

    无包文件**init**.py下,python通过import module导入模块时,先搜索程序运行主目录。 程序运行主目录为运行的py文件所在目录,而不是执行python.exe时所在目录。
    的头像 发表于 02-21 14:15 801次阅读

    简述python模块import和from及all

    python指定导入目录路径,称为包导入。 通过import和from导入包模块。 通过**all**指定导入的模块和导入的模块属性。 ## 1.1
    的头像 发表于 02-21 14:20 962次阅读

    浅析python模块创建和from及import使用

    python模块通过用python程序编写的.py文件即可创建,通过from及import语句导入模块来使用。
    的头像 发表于 02-21 14:44 591次阅读

    python常用的内置函数和模块

    python数字包含常用的内置函数和模块,比如pow()、abs()、floor()、int()等函数,以及math、random等模块
    的头像 发表于 03-10 10:10 701次阅读

    介绍Python模块的基础知识

    Python是一种高级编程语言,拥有丰富的库和模块模块Python中一个独立的、可重用的代码单元,它包含了一组相关的函数、类和变量。
    的头像 发表于 04-21 16:48 789次阅读

    如何使用Telnetlib3框架进行远程访问

    Telnetlib3是Python的一个telnet客户端库,可以用于远程访问服务器。它是Python标准库telnetlib的一个改进版本,支持P
    的头像 发表于 05-04 14:23 1577次阅读

    Visual Studio中python使用pip命令安装模块

    Visual Studio中python使用pip命令安装模块
    的头像 发表于 07-27 11:42 912次阅读
    Visual Studio中<b class='flag-5'>python</b>使用pip命令安装<b class='flag-5'>模块</b>

    python如何导入模块

    Python是一种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块模块是一个包含函数、类和变量等定义的文件,我们可以使用import语句将这些
    的头像 发表于 11-22 14:46 532次阅读