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
请注意,此输出特定于在程序运行时提交其详细信息的远程计算机。