一、介绍

telnet模块提供客户端Telnet协议的服务,用于远程连接计算机,通常使用的通信端口是23。

二、使用

telnetlib模块定义了一个Telnet类,用于创建一个Telnet连接
class telnetlib.Telnet(host=None, port=0[, timeout])
Telnet表示与Telnet服务器的连接
不要重新打开已经连接的实例
一个Telnet对象是一个上下文管理器,可以被用在 with声明

三、实例变量的方法

方法 说明
Telnet.read_until(expected, timeout=None) 一直读到expected字符串出现,或者timeout超时为止
Telnet.read_all() 读取所有数据,直到遇到EOF字符位置
Telnet.read_some() 除非遇到EOF,否则至少读取一个字节的数据。
Telnet.read_very_eager() 读取所有可能不阻塞I/O的内容
Telnet.read_eager() 读取随时可用的数据
Telnet.read_lazy() 处理并返回队列中已经存在的数据
Telnet.read_very_lazy() 返回队列中的所有的可用数据
Telnet.read_sb_data() 返回在SB / SE对之间收集的数据
Telnet.open(host, port=0[, timeout]) 连接到主机
可选的第二个参数是端口号,默认是23端口
Telnet.msg(msg, *args) 当调试级别为>0时,打印调试消息。如果存在其他参数,则使用标准字符串格式运算符将它们替换为消息
Telnet.set_debuglevel(debuglevel) 设置调试级别
Telnet.close() 关闭连接
Telnet.write(buffer) 将字节字符串写入套接字
Telnet.expect(list, timeout=None) 读取直到正则表达式列表中的一个匹配
  1. import telnetlib
  2. ##指定Telnet服务器
  3. host = "http://www.dummy.com"
  4. ## 指定用户账号
  5. username = "johnny"+"\n"
  6. ## 指定用户密码
  7. password = "123457"+ "\n"
  8. ## 创建Telnet类的实例变量
  9. telnet = telnetlib.Telnet(host)
  10. ## 登录Telnet服务器,输入用户账号和密码
  11. telnet.read_until("login: ")
  12. telnet.write(username)
  13. telnet.read_until("Password: ")
  14. telnet.write(password)
  15. ##输入命令
  16. while 2:
  17. command = raw_input("[shell]: ")
  18. telnet.write(command)
  19. if command == "exit":
  20. break
  21. telnet.read_all()
  22. import getpass
  23. import telnetlib
  24. HOST = "localhost"
  25. user = input("Enter your remote account: ")
  26. password = getpass.getpass()
  27. tn = telnetlib.Telnet(HOST)
  28. tn.read_until(b"login: ")
  29. tn.write(user.encode('ascii') + b"\n")
  30. if password:
  31. tn.read_until(b"Password: ")
  32. tn.write(password.encode('ascii') + b"\n")
  33. tn.write(b"ls\n")
  34. tn.write(b"exit\n")
  35. print(tn.read_all().decode('ascii'))