一、程序要点说明

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客户端相关推荐

  1. python3 telnetlib实现telnet客户端

    一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...

  2. python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端

    一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...

  3. python3+telnetlib实现简单自动测试

    1 telnetlib介绍 1.1 简介 官方介绍文档:telnetlib – Telnet 客户端 - Python 3.9.6 文档 telnetlib 模块提供一个实现Telnet协议的类 Te ...

  4. telnet 超时_python3从零学习-5.10.10、telnetlib—Telnet 客户端

    源代码: Lib/telnetlib.py telnetlib模块提供了实现Telnet协议的Telnet类.有关协议的详细信息,请参阅RFC 854.此外,它还为协议字符(参见下面)和telnet选 ...

  5. 实验四:Telnet远程登录服务器的安装、管理及Telnet客户端的应用

    实验四:Telnet远程登录服务器的安装.管理 及Telnet客户端的应用 一.       实验目的 1.掌握Telnet远程登录服务器的安装.使用和配置: 2.熟悉Telnet客户端使用方法. 二 ...

  6. Window2008R2安装Telnet客户端

    默认win2008没有安装telnet命令: 1,打开"服务器管理器",选择添加功能(开始-->管理工具--->服务器管理器---功能--->添加功能) 2,在弹 ...

  7. win10打开本机telnet客户端

    打开以后方可使用本机telnet客户端: 进入控制面板: 程序: 启用或关闭Windows功能: 选中如下: 完成更改: 然后可以telnet某个端口: 如端口打开,就可以连接过去,如下图:端口未打开 ...

  8. telnet客户端模拟浏览器发送请求

    telnet 客户端 telnet客户端能够发出请求去连接服务器(模拟浏览器) 使用telnet之前,需要开启telnet客户端 1.进入控制面板 2.进入程序和功能,选择打开或关闭windows功能 ...

  9. [翻译]Telnet简单介绍及在windows 7中开启Telnet客户端

    文章翻译自 http://social.technet.microsoft.com/wiki/contents/articles/910.windows-7-enabling-telnet-clien ...

  10. Win10下启动telnet客户端

    Win10下启动telnet客户端 1.windows + R 呼出命令行窗口: 2.键入 control; 3.程序 -->程序和功能 -->启动或关闭Windows功能: 4.Wind ...

最新文章

  1. poj 1964 Cow Cycling(dp)
  2. 十一、H.264的Slice Header解析
  3. 如何查看长文本的标识和对象(读长文本)。
  4. Java中实现使用split方法分隔字符串
  5. freemarke之TemplateDirectiveModel详解
  6. Deepin v20系统关机或重启的时候提示unattended upgrades shutdown的解决办法
  7. appium for mac 安装与测试ios说明
  8. 张萍萍山东大学计算机科学系毕业生,并行驰骋,放“码”来战!看先导杯大奖赛上山大风采...
  9. LeetCode 970. 强整数
  10. 等概率随机函数的实现(对立事件的产生)
  11. 坐标轨迹计算_工业机器人工具坐标系和用户坐标系的区别与联系
  12. PHP语言中global和$GLOBALS[]的分析(转)
  13. 拓端tecdat|python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
  14. mysql 练习题网站_mysql练习题
  15. 2021农行研发中心面试题总结
  16. TI公司示例下载方式
  17. 荣耀YOYO建议新增快递取件服务
  18. lib库反编译C语言,C语言静态链接库(lib)与动态链接库(dll)
  19. 海康设备网络SDK开发NET_DVR_GetDeviceConfig
  20. 物联卡与手机卡区别,多种对比让你了解两者不同之外-搜卡之家

热门文章

  1. 关于IDE集成开发环境,Pycharm小技巧
  2. android ExpandableListView详解
  3. POJ 3378 树状数组+DP+离散化+高精度
  4. 【Hibernate3.3复习知识点一】 - 配置hibernate环境(XML)。
  5. 在VBA中实现通过Outlook发送邮件
  6. 滚动条----SCROLLBAR
  7. heidsql(mysql)安装教程和mysql修改密码
  8. 红帽学习笔记[RHCSA] 第一周
  9. 使用SQL语句操作数据
  10. 解决在jenkins中无法打开robot framework report.html log.html的问题