Python - Telnet



Telnet 是一种网络协议,允许一台计算机上的用户登录到另一台也属于同一网络的计算机。telnet 命令与主机名一起使用,然后输入用户凭据。登录成功后,远程用户可以像系统常规用户一样访问应用程序和数据。当然,系统管理员可以控制某些权限,管理员设置并维护系统。

在 Python 中,Telnet 由 telnetlib 模块实现,该模块具有 Telnet 类,该类具有建立连接所需的方法。在下面的示例中,我们还使用 getpass 模块来处理登录过程的一部分的密码提示。此外,我们假设连接到的是 Unix 主机。程序中使用的 telnetlib.Telnet 类的各种方法解释如下。

  • Telnet.read_until - 读取直到遇到给定的字符串 expected,或者直到超时秒数过去。

  • Telnet.write - 将字符串写入套接字,将任何 IAC 字符加倍。如果连接被阻塞,这可能会阻塞。如果连接关闭,可能会引发 socket.error。

  • Telnet.read_all() - 读取所有数据直到 EOF;阻塞直到连接关闭。

示例

import getpass
import telnetlib

HOST = "https://: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

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

广告

© . All rights reserved.