Python之telnetlib模块
telnetlib是python标准库中的一员,我们可以使用该模块以telnet的方式与服务器交互。请观察下面示例了解它的用法:
import telnetlib def run_telnet(host, username, password, commands):
"""
连接并登录服务器后,执行命令串
"""
# 连接Telnet服务器
tn = telnetlib.Telnet(host, port=23, timeout=10)
tn.set_debuglevel(1) # 输入登录用户名
tn.read_until(b'login: ')
tn.write(username.encode('utf-8') + b'\n') # 输入登录密码
tn.read_until(b'Password: ')
tn.write(password.encode('utf-8') + b'\n')
tn.read_until(b'\r\n$') # 登录完毕后执行命令
for command in commands:
tn.write(command.encode('utf-8') + b'\n')
tn.read_until(b'\r\n$') # 终止Telnet连接
tn.close() if __name__ == '__main__':
command_list = ['pwd', 'ls']
run_telnet('172.31.0.151', 'username', 'password', command_list)
上述示例中依次完成了客户端与服务器的telnet连接,通过用户名及密码登录服务器,登陆后执行指定的命令串。telnetlib实现了一个Telnet类,该类实现了Telnet协议。该类在初始化过程中,调用了Telnet.open()函数,帮助客户端与服务器建立telnet连接。连接完成后,可以通过以下函数与服务器进行交互:
- Telnet.read_until() :读取直到遇到给定的预期字节字符串,或者超时 。
- Telnet.write() :将字节字符串写入套接字。
- Telnet.close() :用于关闭telnet连接。
参考资料
- https://docs.python.org/zh-cn/3.9/library/telnetlib.html
Python之telnetlib模块的更多相关文章
- Python的telnetlib模块使用
telnetlib模块的常用接口 telnetlib.Telnet(host, port, timeout) # 登录 write() # 输入命令 read_until(match) # 读出响应, ...
- python中telnetlib模块的使用
一.Windows下开启Telnet服务 (详见:与Win7防火墙无缝结合 Telnet功能测试) 1.Windows 2000/XP/2003/Vista:默认已安装但禁止了Telnet服务 (1) ...
- python使用telnetlib
python使用telnetlib 1 前言 目前,本篇仅记录前段时间搜索得到的关于python使用Telnet的技术博客,由于受领新任务,未进一步验证和深入研究与应用. 参考链接: python官网 ...
- Python远程连接模块-Telnet
Python远程连接模块-Telnet 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 虽然现在主流的python版本还是2.7,相信2020年python程序员都会偏向Python ...
- python之platform模块
python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)
一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
随机推荐
- 开源基于docker的任务调度器pipeline,比`quartzs` 更强大的分布式任务调度器
pipeline 分布式任务调度器 目标: 基于docker的布式任务调度器, 比quartzs,xxl-job 更强大的分布式任务调度器. 可以将要执行的任务打包为docker镜像,或者选择已有镜像 ...
- jvm源码解读--11 ldc指令的解读
写一个java文件 public static void main(String[] args) { String str1="abc"; String str2 ="a ...
- SpringBoot-表单验证-统一异常处理-自定义验证信息源
1. 简介 我们都知道前台的验证只是为了满足界面的友好性.客户体验性等等.但是如果仅靠前端进行数据合法性校验,是远远不够的.因为非法用户可能会直接从客户端获取到请求地址进行非法请求,所以后台的校验是必 ...
- kali linux重启网卡失败:Job for networking.service failed because the control process exited with error code. See "systemctl status networking.service" and "journalctl -xe" for details. 问题排查
linux菜鸡的时候,总是为了配置网络而烦恼,重启网卡的原因有很多,我这次是因为配置了固定IP[使用第三方工具连接]所以需要重启网卡,出现 Job for networking.service fai ...
- DASCTF七月赛两道Web题复现
Ezfileinclude(目录穿越) 拿到http://183.129.189.60:10012/image.php?t=1596121010&f=Z3F5LmpwZw== t是时间,可以利 ...
- jmeter之JDBC类组件
~什么是JDBC?:全称名为Java DataBase Connectivity,(java数据库连接),在jmeter中是一种可以远程操作数据库的一类组件. ~jmeter如何操作数据库?:jmet ...
- VNC远程重装CentOS7
适用于云服务器,远程安装纯净版的CentOS7.9 脚本执行完成后使用VNC客户端连接 一键重装脚本 #!/bin/bash #Net Reinstall Centos System red='\03 ...
- Cookie和Session得使用理解
Cookie 饼干 什么是Cokkie? 1.Cookie 翻译过来是饼干的意思. 2.Cookie 是服务器通知客户端保存键值对的一种技术. 3.客户端有了 Cookie 后,每次请求都发送给服务器 ...
- Shell-09-文本处理awk
awk 详情见: awk
- 【笔记】jupyter notebook基础使用
jupyter notebook基础使用 执行代码 添加格子 在输出结果的同时添加一行 run cells and insert below 输出结果,若后续没有新的代码行了,则会在后面添加一行 查看 ...