Python Telnet

原文:https://www.yiibai.com/python_network_programming/python_telnet.html

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

在Python中,telnet由telnetlib模块实现,该模块具有Telnet类,该类具有建立连接所需的方法。在下面的示例中,使用getpass模块在登录过程中处理密码提示。另外,假设已建立到UNIX主机的连接。下面说明程序中使用的telnetlib.Telnet类的各种方法。

示例

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

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