[英]Error exception causing print to fail - python2
這是我的代碼中的一個片段。 出於某種原因,它根本不打印第二行說“破解需要10秒”或其他什么,但這第一位說密碼發現:確實有效......為什么?
def connect(host, user, password, release):
global Found
global Fails
global startTime
try:
s = pxssh.pxssh()
s.login(host, user, password)
print '[+] Password Found: ' + password
print 'Cracking the password took' + datetime.now()-startTime + 'seconds.'
Found = True
except Exception, e:
if 'read_nonblocking' in str(e):
Fails += 1
time.sleep(5)
connect(host, user, password, False)
elif 'synchronize with original prompt' in str(e):
time.sleep(1)
connect(host, user, password, False)
問題可能是您沒有設置startTime
,但是您通過過度廣泛的異常處理來掩蓋它。 刪除try/except
,選擇一些其他異常來捕獲,或者只是在異常處理程序中包含一個bare raise
命令,你應該看到一個NameError,因為沒有初始化。 修復它,你的代碼有更多的機會。
您正在嘗試連接兩個不同的東西( datetime
和str
),嘗試將datetime
轉換為str:
def connect(host, user, password, release):
global Found
global Fails
global startTime
try:
s = pxssh.pxssh()
s.login(host, user, password)
print '[+] Password Found: ' + password
print 'Cracking the password took' + str(datetime.now()-startTime) + 'seconds.'
Found = True
except Exception, e:
if 'read_nonblocking' in str(e):
Fails += 1
time.sleep(5)
connect(host, user, password, False)
elif 'synchronize with original prompt' in str(e):
time.sleep(1)
connect(host, user, password, False)
此外,你不應該陷入所有類型的Exception
,只需要你需要的那些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.