欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中telnetlib模塊的使用方式

 更新時間:2023年11月10日 16:55:30   作者:上帝De助手  
這篇文章主要介紹了python中telnetlib模塊的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python telnetlib模塊的使用

python下能支持telnet的模塊telnetlib是內置模塊,直接import就可以了,其基本的使用方法也是比較簡單的。

#encoding=utf-8
 
def do_telnet(Host, username, password, finish, commands):
    import telnetlib
    '''Telnet遠程登錄:Windows客戶端連接Linux服務器'''
 
    # 連接Telnet服務器
    tn = telnetlib.Telnet(Host, port=23, timeout=10)
	tn.set_debuglevel(2)
     
    # 輸入登錄用戶名
    tn.read_until('login: ')
    tn.write(username + '\n')
    
    # 輸入登錄密碼
    tn.read_until('password: ')
    tn.write(password + '\n')
      
    # 登錄完畢后執(zhí)行命令
    tn.read_until(finish)
    for command in commands:
        tn.write('%s\n' % command)
    
    #執(zhí)行完畢后,終止Telnet連接(或輸入exit退出)
    tn.read_until(finish)
    tn.close() # tn.write('exit\n')
 
if __name__=='__main__':
	 # 配置選項
	Host = '10.255.254.205' # Telnet服務器IP
	username = 'administrator'   # 登錄用戶名
	password = 'dell1950'  # 登錄密碼
	finish = ':~$ '      # 命令提示符
	commands = ['echo "test"']
	do_telnet(Host, username, password, finish, commands)

其中port和timeout是可選的參數(shù),而timeout的只是在初始化socket連接時起作用,而一旦連接成功后如果出現(xiàn)等待那就不會起作用了,比如使用read_until方式獲取內容時返回的內容與指定的內容沒有吻合,那么就會造成提示等待的情況,這時timeout是不會起作用的,而這個socket連接會一直保持著,永生不死。

【注:read_until有自己的timeout參數(shù),設置了會相應的生效】

如何解決這個問題

其實還有一種比較原始的方法,就是使用sleep方法來代替read_until方法,這樣就不會出現(xiàn)種情況,因為到點就會自己輸入,最多也就是最后得不到想要的結果,但是這個方式很不穩(wěn)定,兼容性也不好;

另一種方法是使用線程來啟動這個函數(shù),然后對子線程進行超時設置,這樣就可以達到間接控制這個telnet連接的目的了。

    import threading
    pars = replace_db_keyworlds(vars_dict, pars)
    configs = pars.split(r'@')
    host = configs[0].encode()
    user = configs[1]
    passwd = configs[2]
    finish = configs[3]
    commands = configs[4].split(r'\n')
    th1 = threading.Thread(target=do_telnet, args=(host.encode('utf-8'), user.encode('utf-8'), passwd.encode('utf-8'), finish.encode('utf-8'), commands))
    th1.start()
    th1.join(20)  ##20秒超時時間

還有一個需要注意的是,傳遞給Telnet方法的字符串都會被解一次碼,所以如果你傳遞過去需要write的字符串是已經(jīng)解碼的unicode的話,那么就會報錯的,所以在傳遞發(fā)送的字符串之前還是先編成utf-8為妥,其它字符不知道支持不,我只試了utf-8,也沒看源碼。

此外,貌似還有一個pexpect的第三方模塊可以支持telnet等一系列的協(xié)議連接,并支持交互式的通信,只是這個模塊夠用就沒學習了,這里先備注一下。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 深入理解python多線程編程

    深入理解python多線程編程

    進程是資源分配的最小單位,他是操作系統(tǒng)進行資源分配和調度運行的基本單位。通俗理解:一個正在運行的一個程序就是一個進程,本文重點給大家介紹python多線程編程的相關知識,感興趣的朋友一起看看吧
    2021-04-04
  • 基于tensorflow for循環(huán) while循環(huán)案例

    基于tensorflow for循環(huán) while循環(huán)案例

    這篇文章主要介紹了基于tensorflow for循環(huán) while循環(huán)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python密碼學Vignere密碼教程

    python密碼學Vignere密碼教程

    這篇文章主要為大家介紹了python密碼學Vignere密碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python 合并拼接字符串的方法

    Python 合并拼接字符串的方法

    這篇文章主要介紹了Python 合并拼接字符串的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • python 循環(huán)while和for in簡單實例

    python 循環(huán)while和for in簡單實例

    下面小編就為大家?guī)硪黄猵ython 循環(huán)while和for in簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 對Python函數(shù)設計規(guī)范詳解

    對Python函數(shù)設計規(guī)范詳解

    今天小編就為大家分享一篇對Python函數(shù)設計規(guī)范詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pytorch中的hook機制register_forward_hook

    pytorch中的hook機制register_forward_hook

    這篇文章主要介紹了pytorch中的hook機制register_forward_hook,手動在forward之前注冊hook,hook在forward執(zhí)行以后被自動執(zhí)行,下面詳細的內容介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 關于Python 實現(xiàn)tuple和list的轉換問題

    關于Python 實現(xiàn)tuple和list的轉換問題

    這篇文章主要介紹了Python 實現(xiàn)tuple和list的轉換,文中介紹了list(列表)和tuple(元組)共同點和區(qū)別,結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • python腳本請求數(shù)量達到上限,http請求重試問題

    python腳本請求數(shù)量達到上限,http請求重試問題

    這篇文章主要介紹了python腳本請求數(shù)量達到上限,http請求重試問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python繪制分形圖案探索無限細節(jié)和奇妙之美

    Python繪制分形圖案探索無限細節(jié)和奇妙之美

    本文將介紹如何使用Python繪制各種分形圖案,包括分形樹、科赫曲線、曼德博集合等。通過本文讀者可以了解分形圖案的基本概念和構造方法,并學會使用Python繪制出各種精美的分形圖案。本文還提供了具體的代碼示例和實踐案例,幫助讀者更好地理解分形圖案的奇妙之美
    2023-04-04

最新評論