telnetlib是python標准庫中的一員,我們可以使用該模塊以telnet的方式與服務器交互。請觀察下面示例了解它的用法:
import telnetlib def run_telnet(host, username, password, commands): """ 連接並登錄服務器后,執行命令串 """ # 連接Telnet服務器 tn = telnetlib.Telnet(host, port=23, timeout=10) tn.set_debuglevel(1) # 輸入登錄用戶名 tn.read_until(b'login: ') tn.write(username.encode('utf-8') + b'\n') # 輸入登錄密碼 tn.read_until(b'Password: ') tn.write(password.encode('utf-8') + b'\n') tn.read_until(b'\r\n$') # 登錄完畢后執行命令 for command in commands: tn.write(command.encode('utf-8') + b'\n') tn.read_until(b'\r\n$') # 終止Telnet連接 tn.close() if __name__ == '__main__': command_list = ['pwd', 'ls'] run_telnet('172.31.0.151', 'username', 'password', command_list)
上述示例中依次完成了客戶端與服務器的telnet連接,通過用戶名及密碼登錄服務器,登陸后執行指定的命令串。telnetlib實現了一個Telnet類,該類實現了Telnet協議。該類在初始化過程中,調用了Telnet.open()函數,幫助客戶端與服務器建立telnet連接。連接完成后,可以通過以下函數與服務器進行交互:
- Telnet.read_until() :讀取直到遇到給定的預期字節字符串,或者超時 。
- Telnet.write() :將字節字符串寫入套接字。
- Telnet.close() :用於關閉telnet連接。