Python3+telnetlib实现telnet客户端
一、程序要点说明
python实现telnet客户端的六个关键问题及其答案是:
使用什么库实现telnet客户端----telnetlib
怎么连接主机----两种方法,一种是在实例化时传入ip地址连接主机(tn = telnetlib.Telnet(host_ip,port=23)),第二种是,先不传参数进行实例化再用open方法连接主机(我这里使用的方法)
怎么输入用户名密码----我们使用read_untilb函数监听,出现标志后使用write方法向服务端传输用户名密码
怎么执行命令----仍然是使用write方法向服务端传送命令,不管向服务端传送什么数据都用write;不过要注意需要编码成bytes类型
怎么获取命令执行结果----使用read_very_eager()方法,该方法获取的内容是上次获取之后本次获取之前的所有输入输出;由于获取到的是bytes类型要decode解码一下
怎么退出telnet---退出telnet使用write方法向服务器提交exit命令即可
二、程序源代码
import logging import telnetlib import timeclass TelnetClient():def __init__(self,):self.tn = telnetlib.Telnet()# 此函数实现telnet登录主机def login_host(self,host_ip,username,password):try:# self.tn = telnetlib.Telnet(host_ip,port=23)self.tn.open(host_ip,port=23)except:logging.warning('%s网络连接失败'%host_ip)return False# 等待login出现后输入用户名,最多等待10秒self.tn.read_until(b'login: ',timeout=10)self.tn.write(username.encode('ascii') + b'\n')# 等待Password出现后输入用户名,最多等待10秒self.tn.read_until(b'Password: ',timeout=10)self.tn.write(password.encode('ascii') + b'\n')# 延时两秒再收取返回结果,给服务端足够响应时间time.sleep(2)# 获取登录结果# read_very_eager()获取到的是的是上次获取之后本次获取之前的所有输出command_result = self.tn.read_very_eager().decode('ascii')if 'Login incorrect' not in command_result:logging.warning('%s登录成功'%host_ip)return Trueelse:logging.warning('%s登录失败,用户名或密码错误'%host_ip)return False# 此函数实现执行传过来的命令,并输出其执行结果def execute_some_command(self,command):# 执行命令self.tn.write(command.encode('ascii')+b'\n')time.sleep(2)# 获取命令结果command_result = self.tn.read_very_eager().decode('ascii')logging.warning('命令执行结果:\n%s' % command_result)# 退出telnetdef logout_host(self):self.tn.write(b"exit\n")if __name__ == '__main__':host_ip = '192.168.220.129'username = 'root'password = 'abcd1234'command = 'whoami'telnet_client = TelnetClient()# 如果登录结果返加True,则执行命令,然后退出if telnet_client.login_host(host_ip,username,password):telnet_client.execute_some_command(command)telnet_client.logout_host()
参考:
https://docs.python.org/3/library/telnetlib.html
Python3+telnetlib实现telnet客户端相关推荐
- python3 telnetlib实现telnet客户端
一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...
- python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端
一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...
- python3+telnetlib实现简单自动测试
1 telnetlib介绍 1.1 简介 官方介绍文档:telnetlib – Telnet 客户端 - Python 3.9.6 文档 telnetlib 模块提供一个实现Telnet协议的类 Te ...
- telnet 超时_python3从零学习-5.10.10、telnetlib—Telnet 客户端
源代码: Lib/telnetlib.py telnetlib模块提供了实现Telnet协议的Telnet类.有关协议的详细信息,请参阅RFC 854.此外,它还为协议字符(参见下面)和telnet选 ...
- 实验四:Telnet远程登录服务器的安装、管理及Telnet客户端的应用
实验四:Telnet远程登录服务器的安装.管理 及Telnet客户端的应用 一. 实验目的 1.掌握Telnet远程登录服务器的安装.使用和配置: 2.熟悉Telnet客户端使用方法. 二 ...
- Window2008R2安装Telnet客户端
默认win2008没有安装telnet命令: 1,打开"服务器管理器",选择添加功能(开始-->管理工具--->服务器管理器---功能--->添加功能) 2,在弹 ...
- win10打开本机telnet客户端
打开以后方可使用本机telnet客户端: 进入控制面板: 程序: 启用或关闭Windows功能: 选中如下: 完成更改: 然后可以telnet某个端口: 如端口打开,就可以连接过去,如下图:端口未打开 ...
- telnet客户端模拟浏览器发送请求
telnet 客户端 telnet客户端能够发出请求去连接服务器(模拟浏览器) 使用telnet之前,需要开启telnet客户端 1.进入控制面板 2.进入程序和功能,选择打开或关闭windows功能 ...
- [翻译]Telnet简单介绍及在windows 7中开启Telnet客户端
文章翻译自 http://social.technet.microsoft.com/wiki/contents/articles/910.windows-7-enabling-telnet-clien ...
- Win10下启动telnet客户端
Win10下启动telnet客户端 1.windows + R 呼出命令行窗口: 2.键入 control; 3.程序 -->程序和功能 -->启动或关闭Windows功能: 4.Wind ...
最新文章
- poj 1964 Cow Cycling(dp)
- 十一、H.264的Slice Header解析
- 如何查看长文本的标识和对象(读长文本)。
- Java中实现使用split方法分隔字符串
- freemarke之TemplateDirectiveModel详解
- Deepin v20系统关机或重启的时候提示unattended upgrades shutdown的解决办法
- appium for mac 安装与测试ios说明
- 张萍萍山东大学计算机科学系毕业生,并行驰骋,放“码”来战!看先导杯大奖赛上山大风采...
- LeetCode 970. 强整数
- 等概率随机函数的实现(对立事件的产生)
- 坐标轨迹计算_工业机器人工具坐标系和用户坐标系的区别与联系
- PHP语言中global和$GLOBALS[]的分析(转)
- 拓端tecdat|python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
- mysql 练习题网站_mysql练习题
- 2021农行研发中心面试题总结
- TI公司示例下载方式
- 荣耀YOYO建议新增快递取件服务
- lib库反编译C语言,C语言静态链接库(lib)与动态链接库(dll)
- 海康设备网络SDK开发NET_DVR_GetDeviceConfig
- 物联卡与手机卡区别,多种对比让你了解两者不同之外-搜卡之家
热门文章
- 关于IDE集成开发环境,Pycharm小技巧
- android ExpandableListView详解
- POJ 3378 树状数组+DP+离散化+高精度
- 【Hibernate3.3复习知识点一】 - 配置hibernate环境(XML)。
- 在VBA中实现通过Outlook发送邮件
- 滚动条----SCROLLBAR
- heidsql(mysql)安装教程和mysql修改密码
- 红帽学习笔记[RHCSA] 第一周
- 使用SQL语句操作数据
- 解决在jenkins中无法打开robot framework report.html log.html的问题