📅  最后修改于: 2020-11-06 06:32:25             🧑  作者: Mango
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
请注意,此输出特定于运行程序时提交其详细信息的远程计算机。