Python - Telnet

  • 简述

    Telnet 是一种网络协议,它允许用户在一台计算机上登录到另一台也属于同一网络的计算机。telnet 命令与主机名一起使用,然后输入用户凭据。成功登录后,远程用户可以以类似于系统普通用户的方式访问应用程序和数据。当然,一些权限可以由设置和维护系统的系统管理员控制。
    在 Python 中,telnet 由 telnetlib 模块实现,该模块具有 Telnet 类,该类具有建立连接所需的方法。在下面的示例中,我们还使用 getpass 模块来处理密码提示,作为登录过程的一部分。我们还假设连接到一个 Unix 主机。下面解释程序中使用的 telnetlib.Telnet 类的各种方法。
    • Telnet.read_until - 读取直到遇到预期的给定字符串或超时秒数过去。
    • Telnet.write - 将字符串写入套接字,将任何 IAC 字符加倍。如果连接被阻止,这可能会阻止。如果连接关闭,可能会引发 socket.error。
    • Telnet.read_all() - 读取所有数据直到 EOF;阻塞直到连接关闭。
  • 例子

    
    import getpass
    import telnetlib
    HOST = "http://localhost:8000/"
    user = raw_input("Enter your remote account: ")
    password = getpass.getpass()
    tn = telnetlib.Telnet(HOST)
    tn.read_until("login: ")
    tn.write(user + "\n")
    if password:
        tn.read_until("Password: ")
        tn.write(password + "\n")
    tn.write("ls\n")
    tn.write("exit\n")
    print tn.read_all()
    
    当我们运行上述程序时,我们得到以下输出 -
    
     - lrwxrwxrwx    1 0        0               1 Nov 13  2012 ftp -> .
    - lrwxrwxrwx    1 0        0               3 Nov 13  2012 mirror -> pub
    - drwxr-xr-x   23 0        0            4096 Nov 27  2017 pub
    - drwxr-sr-x   88 0        450          4096 May 04 19:30 site
    - drwxr-xr-x    9 0        0            4096 Jan 23  2014 vol
    
    请注意,此输出特定于程序运行时提交详细信息的远程计算机。