The telnetlib module provides a Telnet class that implements the Telnet protocol. 也就是说,可以通过该模块连接telnet server。
官方文档给出了该模块的一个典型应用,如下:
import getpass
import sys
import telnetlib
HOST = "localhost"
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()
下面给出自己的理解(还未验证):
HOST = "localhost':HOST的值通常赋为要telnet的server的ip;
接下来两句用来获取登录该server时的用户名和密码,并将你输入的用户名和密码保存在user和password两个变量中;
tn = telnetlib.Telne(HOST):该句应该是开始telnet server了,类似于你在windows的cmd里输入:telnet HOST
tn.read_until("login: "):指的是等待server向你发送"login: "字符,只有获取到这些字符时,程序才会接着往下执行。类似于当你在windows下telnet HOST之后,终端会显示:”login:“,让你输入用户名;
接下来两行是输入密码的流程,与输入用户名类似;
如果登陆成功,就可以在该server下执行命令了,用telnetlib模块执行命令时所用的方法就是如代码所示:tn.write("ls\n");
tn.write("exit\n")会退出登陆的server,最后一句就是打印所有退出时server显示的信息。