溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中利用telnet實現(xiàn)一個弱密碼登錄功能

發(fā)布時間:2021-03-25 16:32:24 來源:億速云 閱讀:172 作者:Leah 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關怎么在python中利用telnet實現(xiàn)一個弱密碼登錄功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

系統(tǒng)環(huán)境:

64位win7企業(yè)版

python2.7.10

2016.08.16修改內容:

1)read_until()函數(shù)是可以設置timeout的,之前不能獲取到password之后的返回是因為調用read_some()函數(shù)次數(shù)不夠,沒有讀取到返回信息

2)如果不設置read_until()函數(shù)的timeout值,那么程序將一直建立連接而不會關閉,導致程序永遠沒有返回,所以設置timeout還是有必要的

3)不同服務器返回的內容是不一樣的,例如網絡設備radware返回就不是"login:",而是"user:",有的password的p是大寫的,所以匹配"assword:"比較好。并且,不同服務器返回到的用戶密碼錯誤提示也是不一樣的,可以在python控制臺先試試再去寫代碼。

def check_23_port(ip,username,passwd):
 try:
  tn=telnetlib.Telnet()#
  #tn.set_debuglevel(0),設置為2可以看到更多信息
  tn.open(host=ip)
  tn.read_until('login:')#這里設置timeout=10比較好,否則如果不能匹配字符串,這個連接將一直建立,程序不會返回
  tn.write(username+'\r\n')
  tn.read_until('password:')
  tn.write(passwd+'\r\n')
  tn.read_some()#為result準備數(shù)據(jù),可能需要多調用幾次才能夠獲取到服務器返回的信息"Login Failed"
  result = tn.read_some()#這里調用兩次,不同的操作系統(tǒng)返回的不一樣,AIX linux返回的是invalid
  rex = r'Login Failed'
  tmp = re.search(rex,result)
  if tmp == None:
   return True
  else:
   return False 
  tn.write("exit\r\n")
  tn.close()
 except Exception as e:
  pass
  print "connect error:" + str(e)

關于怎么在python中利用telnet實現(xiàn)一個弱密碼登錄功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI