Python之telnetlib模塊


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連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM