源代码: Lib/telnetlib.py

telnetlib模块提供了实现Telnet协议的Telnet类。有关协议的详细信息,请参阅RFC 854。此外,它还为协议字符(参见下面)和telnet选项提供了符号常量。telnet选项的符号名称遵循arpa/telnet中的定义。h,前导端末端被删除。用于通常不包括在arpa/telnet中的选项的符号名称。h,参见模块源代码本身。

telnet命令的符号常量是:IAC、don、DO、won、WILL、SE(子协商结束)、NOP(没有操作)、DM(数据标记)、BRK(中断)、IP(中断进程)、AO(中止输出)、AYT(在那里吗)、EC(擦除字符)、EL(擦除行)、GA(继续)、SB(子协商开始)。

class telnetlib.Telnet(host=None, port=0[, timeout])

表示到Telnet服务器的连接。默认情况下,实例最初没有连接;open()方法必须用于建立连接。或者,也可以将主机名和可选端口号传递给构造函数,在这种情况下,与服务器的连接将在构造函数返回之前建立。可选的超时参数指定阻塞操作(如连接尝试)的超时时间(以秒为单位)(如果未指定,将使用全局默认超时设置)。

不要重新打开已经连接的实例。

这个类有很多read_*()方法。注意,当读取连接的末尾时,它们中的一些会引发EOFError,因为它们可能会因为其他原因返回空字符串。参见下面的各个描述。

Telnet对象是上下文管理器,可以在with语句中使用。当with块结束时,close()方法被调用:

>>> from telnetlib import Telnet>>> with Telnet('localhost', 23) as tn:...     tn.interact()...

Telnet 对象

Telnet实例有以下方法:

  • Telnet.read_until(expected, timeout=None)

读取,直到遇到预期的给定字节字符串,或者直到超时秒过了。

当没有找到匹配时,返回可用的内容,可能是空字节。如果连接被关闭且没有成熟的数据可用,则会产生EOFError。

  • Telnet.read_all()

以字节形式读取所有数据直到EOF;阻塞直到连接关闭。

  • Telnet.read_some()

读取熟数据的至少一个字节,除非EOF被命中。如果EOF被命中,返回b "。如果没有立即可用的数据,则阻塞。

  • Telnet.read_very_eager()

在不阻塞I/O(渴望)的情况下读取所有可以读取的内容。

如果连接关闭且没有成熟数据可用,则会产生EOFError。如果没有成熟的数据可用,返回b "。除非在IAC序列中间,否则不要阻塞。

  • Telnet.read_eager()

读取现成的数据。

如果连接关闭且没有成熟数据可用,则会产生EOFError。如果没有成熟的数据可用,返回b "。除非在IAC序列中间,否则不要阻塞。

  • Telnet.read_lazy()

处理并返回队列中已经存在的数据(惰性)。

如果连接关闭且没有可用数据,则会引发EOFError。如果没有成熟的数据可用,返回b "。除非在IAC序列中间,否则不要阻塞。

  • Telnet.read_very_lazy()

返回队列中可用的所有数据(非常惰性)。

如果连接关闭且没有可用数据,则会引发EOFError。如果没有成熟的数据可用,返回b "。这个方法不会阻塞。

  • Telnet.read_sb_data()

返回SB/SE对之间收集的数据(子选项begin/end)。当用SE命令调用回调时,回调应该访问这些数据。这个方法不会阻塞。

  • Telnet.open(host, port=0[, timeout])

连接到主机。第二个可选参数是端口号,默认为标准Telnet端口(23)。可选的超时参数指定阻塞操作(如连接尝试)的超时时间(以秒为单位)(如果未指定,将使用全局默认超时设置)。

不要尝试重新打开已经连接的实例。

  • Telnet.msg(msg, *args)

在调试级别为>时打印调试消息。如果有额外的参数,则使用标准字符串格式化操作符在消息中替换它们。

  • Telnet.set_debuglevel(debuglevel)

设置调试级别。debuglevel的值越高,您得到的调试输出就越多(在sys.stdout上)。

  • Telnet.close()

关闭连接对象。

  • Telnet.get_socket()

返回内部使用的套接字对象。

  • Telnet.fileno()

返回内部使用的套接字对象的文件描述符。

  • Telnet.write(buffer)

将一个字节字符串写入套接字,将任何IAC字符加倍。如果连接被阻塞,则会阻塞。如果连接关闭,可能会引发OSError。

在 3.3 版更改: This method used to raise socket.error, which is now an alias of OSError.

  • Telnet.interact()

交互功能,模拟一个Telnet客户端。

  • Telnet.mt_interact()

交互式()的多线程版本。

  • Telnet.expect(list, timeout=None)

读取一个正则表达式列表,直到其中一个匹配。

第一个参数是一个正则表达式列表,可以是已编译的(regex对象),也可以是未编译的(字节字符串)。第二个可选参数是超时,以秒为单位;默认是无限期阻塞。

返回包含三个项的元组:匹配的第一个正则表达式列表中的索引;返回的匹配对象;以及读取到并包含匹配的字节。

如果发现文件末尾没有读取字节,请抛出EOFError。否则,当没有匹配时,返回(-1,None, data),其中的数据是到目前为止收到的字节(如果发生超时,可能是空字节)。

如果一个正则表达式以贪婪匹配(如.*)结束,或者多个表达式可以匹配相同的输入,那么结果是不确定的,可能取决于I/O计时。

  • Telnet.set_option_negotiation_callback(callback)

每次在输入流中读取telnet选项时,这个回调(如果设置了)将通过以下参数调用:callback(telnet socket, command (DO/ don /WILL/ won), option)。telnetlib之后不执行其他操作。

Telnet 例子

说明典型用法的简单例子:

import getpassimport telnetlibHOST = "localhost"user = input("Enter your remote account: ")password = getpass.getpass()tn = telnetlib.Telnet(HOST)tn.read_until(b"login: ")tn.write(user.encode('ascii') + b"")if password:    tn.read_until(b"Password: ")    tn.write(password.encode('ascii') + b"")tn.write(b"ls")tn.write(b"exit")print(tn.read_all().decode('ascii'))

telnet 超时_python3从零学习-5.10.10、telnetlib—Telnet 客户端相关推荐

  1. 向一个无法连接的网络尝试了一个套接字操作_python3从零学习-5.8.1、socket—底层网络接口...

    源代码: Lib/socket.py 这个模块提供了访问BSD*套接字*的接口.在所有现代Unix系统.Windows.macOS和其他一些平台上可用. 这个Python接口是用Python的面向对象 ...

  2. python普通类实现接口_python3从零学习-5.8.1、socket—底层网络接口

    源代码: Lib/socket.py 这个模块提供了访问BSD*套接字*的接口.在所有现代Unix系统.Windows.macOS和其他一些平台上可用. 这个Python接口是用Python的面向对象 ...

  3. unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...

    TextWrapper 模块提供了一些快捷函数,以及可以完成所有工作的类 TextWrapper 如果你只是要对一两个文本字符串进行自动换行或填充,快捷函数应该就够用了:否则的话,你应该使用 Text ...

  4. python3字典升序排序_python3从零学习-4.2、内置数据类型

    内置标准类型: * Boolean(布尔) * Number(数字) * String(字符串) * List(列表) * Tuple(元组) * Sets(集合) * Dictionary(字典) ...

  5. python3 数组大小_python3从零学习-5.1.8、高效的数值数组array

    此模块定义了一种对象类型,可以紧凑地表示基本类型值的数组:字符.整数.浮点数等. 数组属于序列类型,其行为与列表非常相似,不同之处在于其中存储的对象类型是受限的. 类型在对象创建时使用单个字符的类型码 ...

  6. 图片二进制编码_python3从零学习-5.7.4、quopri编码与解码经过MIME转码打印数据

    源代码: Lib/quopri.py 此模块会执行转换后可打印的传输编码与解码. 转换后可打印的编码格式被设计用于只包含相对较少的不可打印字符的数据:如果存在大量这样的字符,通过 base64 模块所 ...

  7. unix查找的字符串包含特殊字符_python3从零学习-5.4.7、Unix风格路径名模式扩展glob...

    源代码: Lib/glob.py glob 模块可根据 Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确定的顺序返回结果. 波浪号扩展不会生效,但 *, ? 以及表示为 [] 的字符范围 ...

  8. csv 字符串_python3从零学习-5.5.1、CSV 文件读写

    源代码: Lib/csv.py 模块内容 csv 模块定义了以下函数: csv.reader(csvfile, dialect='excel', **fmtparams) 返回一个 reader 对象 ...

  9. golang 读取文件最后一行_python3从零学习-5.4.3、文件输入流fileinput

    源代码: Lib/fileinput.py 此模块实现了一个辅助类和一些函数用来快速编写访问标准输入或文件列表的循环. 如果你只想要读写一个文件请参阅 open(). 典型用法为: import fi ...

最新文章

  1. python 元类的call_【原创】Python 对象创建过程中元类, __new__, __call__, __init__ 的处理...
  2. 长文解析:作为容器底层技术的半壁江山, cgroup如何突破并发创建瓶颈?
  3. RHCS Oracle HA for OEL5.8 KVM实践配置
  4. mysql与oracle语法区别
  5. 思科模拟器GNS3将路由器变成交换机的方法
  6. 【小程序】前端微信授权登录
  7. Opengl ES之FBO
  8. 硬盘格式 FAT32 NTFS exFAT扫盲
  9. 基于可编辑DIV的带表情编辑器
  10. AMD Ryzen 5 2600X 微星B450M 迫击炮 技嘉GTX10606G成功安装黑苹果Mac OS High Sierra 10.13.16全记录
  11. Vue 正确理解mounted、beforeUpdate、updated三个钩子函数的关系
  12. 解决Linux下无法利用shell脚本启动conda虚拟环境问题
  13. 行列式的两种计算方法
  14. 【转】Java程序性能优化
  15. 如何实现复制微信图文到Word文档
  16. WebSocket安全漏洞
  17. Cognos的下载地址分享
  18. 浏览器中访问网页、回退及前进模拟
  19. 云服务器和本地服务器的优缺点分析
  20. RabbitMQ 5种队列

热门文章

  1. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(11) - 数据可缓存性控制指令
  2. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(4) - 8086/16位指令操作码字节
  3. 计算机网络(16)-计算机网络应用示例
  4. windows 笔记本连接公共wifi不弹出登录页面的处理办法
  5. 阿里云负载均衡器(SLB)的配置方法
  6. Linux的进程/线程/协程系列4:进程知识深入总结:上篇
  7. oracle监听管理工具,oracle监听器管理
  8. pythonweb项目面试题_python和web框架面试题目整理(1)
  9. Unity Shader:用几何着色器实现复联3灭霸的终极大招灰飞烟灭
  10. oracle sap mas,MAS 移动业务整合系统