Python 远程登录


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:// 本地主机: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

请注意,此输出特定于程序运行时提交详细信息的远程计算机。