[雪峰磁针石博客]python库介绍-telnetlib:Telnet客户端
简介
telnetlib模块提供的Telnet类实现了Telnet协议(参见rfc854)。它为协议字符和telnet选项提供符号常量,符号常量来源于arpa/telnet.h,去掉了前缀TELOPT_。
telnet命令有: IAC, DONT, DO, WONT, WILL, SE (Subnegotiation End), NOP (No Operation), DM (Data Mark), BRK (Break), IP (Interrupt process), AO (Abort output), AYT (Are You There), EC (Erase Character), EL (Erase Line), GA (Go Ahead), SB (Subnegotiation Begin)。
class telnetlib.Telnet(host=None, port=0[, timeout])
快速入门
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author Rongzhong Xu 2016-08-25 wechat: pythontesting """ Name: telnet_demo.py Tesed in python3.5 """ import telnetlib HOST = "172.17.100.18" user = "test" password = "123456" def command(con, flag, str_=""): data = con.read_until(flag.encode()) print(data.decode(errors='ignore')) con.write(str_.encode() + b"\n") return data tn = telnetlib.Telnet(HOST) command(tn, "login: ", user) if password: command(tn, "Password: ", password) command(tn, "$", "ls") command(tn, "$", " exit") command(tn, "$", "") tn.close()
执行结果:
$ python3 telnet_demo.py CentOS release 6.7 (Final) Kernel 2.6.32-573.18.1.el6.x86_64 on an x86_64 login: Password: Last login: Thu Aug 25 17:20:18 from 172.17.153.6 [test@public01 ~]$ ls [test@public01 ~]$ exit logout
参考资料
- python测试等IT技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- python官方文档:https://docs.python.org/3/library/telnetlib.html
- effbot: http://effbot.org/librarybook/telnetlib.htm
- rfc854: https://tools.ietf.org/html/rfc854.html
方法
- Telnet.read_until(expected[, timeout])
读取直到遇到了给定的字符串expected或超时秒数。
当找不到匹配时,返回读取内容。连接关闭或者没有数据时触发EOFError异常。
- Telnet.read_all()
读取所有数据直到EOF,阻塞直到连接关闭。
- Telnet.read_some()
读取至少一个字节的数据,除非EOF。 如果没有数据则阻塞。
- Telnet.read_very_eager()
非阻塞地读取。连接关闭或者没有数据时触发EOFError异常。返回b''如果没有数据,
- Telnet.read_eager()
读取的已有数据。(快)
连接关闭或者没有数据时触发EOFError异常。返回b''如果没有数据,
- Telnet.read_lazy()
读取的已有数据(懒)
连接关闭或者没有数据时触发EOFError异常。返回b''如果没有数据,
- Telnet.read_very_lazy()
读取的已有数据(很懒)
连接关闭或者没有数据时触发EOFError异常。返回b''如果没有数据,
- Telnet.read_sb_data()
返回的SB/SE pair (suboption begin/end)之间的数据。此方法永远不会阻塞。
- Telnet.open(host[, port[, timeout]])
连接到主机。可选的第二个参数是默认为标准的 Telnet 端口 (23) 的端口号。可选的超时参数指定以秒计) 阻塞操作 (如连接尝试超时 (如果不指定,将使用全局默认超时设置)。
- Telnet.msg(msg[, *args])
当调试级别为> 0 打印调试消息。
- Telnet.set_debuglevel(debuglevel)
设置调试级别。debuglevel越高信息越多。
- Telnet.close()
关闭该连接。
- Telnet.get_socket()
返回套接字供内部使用。
- Telnet.fileno()
返回套接字对象内部使用的文件描述符。
- Telnet.write(buffer)
写入字符串到套接字,加倍 IAC 的任何字符。连接关闭是可能触发OSError异常。
- Telnet.interact()
交由用户控制。
- Telnet.mt_interact()
多线程的版本的interact()。
- Telnet.expect(list[, timeout])
读取直到匹配正则表达式项列表中的一个。
list是一个正则表达式列表,包含编译(regex 对象)或未编译(字节字符串)。timeout以秒为单位, 默认值为无限期阻塞。
返回元组的三个项目: index为匹配正则表达式的位置;match 对象;此时读了的字节。
文件结尾或没有数据时触发EOFError异常,不匹配时返回(-1, None, data)。
如果正则表达式是贪婪模式或者如果多个表达式可以匹配相同的输入,结果是不确定的,可能取决于I/O定时。
- Telnet.set_option_negotiation_callback(callback)
每次从输入流读取telnet选项时,调用callback(telnet socket, command (DO/DONT/WILL/WONT), option),后续步骤不会执行。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
[雪峰磁针石博客]python标准模块介绍- binascii 二进制和ASCII转换
python测试开发项目实战-目录 python工具书籍下载-持续更新 python 3.7极速入门教程 - 目录 简介 binascii模块包含很多用来方法来转换二进制和各种ASCII编码的二进制表示法。通常不直接使用这些功能,而是使用封装模块,如uu, base64或binhex。binascii模块包含用C语言编写更快的低级功能,通常为高级模块所使用。 功能:二进制和ASCII转换。 类型:标准模块 相关模块: base64 标准模块。 binhex 标准模块。 uu 标准模块。 quopri 标准模块。 Uu编码 uu编码格式现在已经比较少使用(http://zh.wikipedia.org/wiki/Uuencode),相关函数binascii.a2b_uu(string)和binascii.b2a_uu(data)这里不做介绍。 更多资料参见:http://docs.python.org/2/library/uu.html Binhex编码 Binhex用于Macintosh平台。这里暂不做介绍。相关函数有:binascii.rledecode_hqx(data) ,bin...
- 下一篇
[雪峰磁针石博客]python包管理工具:Conda和pip比较
python测试开发项目实战-目录 python工具书籍下载-持续更新 python 3.7极速入门教程 - 目录 Conda和pip通常被认为几乎完全相同。虽然这两个工具的某些功能重叠,但它们设计用于不同的目的。 Pip是Python Packaging Authority推荐的用于从Python Package Index安装包的工具。 Pip安装打包为wheels或源代码分发的Python软件。后者可能要求系统安装兼容的编译器和库。 Conda是跨平台的包和环境管理器,可以安装和管理来自Anaconda repository以 Anaconda Cloud的conda包。 Conda包是二进制文件,徐需要使用编译器来安装它们。另外,conda包不仅限于Python软件。它们还可能包含C或C ++库,R包或任何其他软件。 这是conda和pip之间的关键区别。 Pip安装Python包,而conda安装包可能包含用任何语言编写的软件的包。在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。而Conda可以直接安装Python包以及Python解释器。...
相关文章
文章评论
共有0条评论来说两句吧...