對(duì)python使用telnet實(shí)現(xiàn)弱密碼登錄的方法詳解
系統(tǒng)環(huán)境:
64位win7企業(yè)版
python2.7.10
2016.08.16修改內(nèi)容:
1)read_until()函數(shù)是可以設(shè)置timeout的,之前不能獲取到password之后的返回是因?yàn)檎{(diào)用read_some()函數(shù)次數(shù)不夠,沒有讀取到返回信息
2)如果不設(shè)置read_until()函數(shù)的timeout值,那么程序?qū)⒁恢苯⑦B接而不會(huì)關(guān)閉,導(dǎo)致程序永遠(yuǎn)沒有返回,所以設(shè)置timeout還是有必要的
3)不同服務(wù)器返回的內(nèi)容是不一樣的,例如網(wǎng)絡(luò)設(shè)備radware返回就不是"login:",而是"user:",有的password的p是大寫的,所以匹配"assword:"比較好。并且,不同服務(wù)器返回到的用戶密碼錯(cuò)誤提示也是不一樣的,可以在python控制臺(tái)先試試再去寫代碼。
def check_23_port(ip,username,passwd):
try:
tn=telnetlib.Telnet()#
#tn.set_debuglevel(0),設(shè)置為2可以看到更多信息
tn.open(host=ip)
tn.read_until('login:')#這里設(shè)置timeout=10比較好,否則如果不能匹配字符串,這個(gè)連接將一直建立,程序不會(huì)返回
tn.write(username+'\r\n')
tn.read_until('password:')
tn.write(passwd+'\r\n')
tn.read_some()#為result準(zhǔn)備數(shù)據(jù),可能需要多調(diào)用幾次才能夠獲取到服務(wù)器返回的信息"Login Failed"
result = tn.read_some()#這里調(diào)用兩次,不同的操作系統(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)
以上這篇對(duì)python使用telnet實(shí)現(xiàn)弱密碼登錄的方法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3開發(fā)實(shí)例之非關(guān)系型圖數(shù)據(jù)庫(kù)Neo4j安裝方法及Python3連接操作Neo4j方法實(shí)例
這篇文章主要介紹了Python3開發(fā)實(shí)例之非關(guān)系型圖數(shù)據(jù)庫(kù)Neo4j安裝方法及Python3連接操作Neo4j方法實(shí)例,需要的朋友可以參考下2020-03-03
python縮進(jìn)長(zhǎng)度是否統(tǒng)一
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python縮進(jìn)長(zhǎng)度是否統(tǒng)一的相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2020-08-08
python文件頭部聲明#coding=utf-8問(wèn)題
這篇文章主要介紹了python文件頭部聲明#coding=utf-8問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
python里讀寫excel等數(shù)據(jù)文件的6種常用方式(小結(jié))
這篇文章主要介紹了python里讀寫excel等數(shù)據(jù)文件的6種常用方式(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
django中操作mysql數(shù)據(jù)庫(kù)的方法
對(duì)象關(guān)系映射模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配的現(xiàn)象的技術(shù),這篇文章主要介紹了django中操作mysql數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2022-09-09
5分鐘教會(huì)你用Docker部署一個(gè)Python應(yīng)用
Docker是一個(gè)開源項(xiàng)目,為開發(fā)人員和系統(tǒng)管理員提供了一個(gè)開放平臺(tái),可以將應(yīng)用程序構(gòu)建、打包為一個(gè)輕量級(jí)容器,并在任何地方運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)5分鐘教會(huì)你用Docker部署一個(gè)Python應(yīng)用,需要的朋友可以參考下2022-06-06
詳解用Python處理HTML轉(zhuǎn)義字符的5種方式
本文介紹了詳解用Python處理HTML轉(zhuǎn)義字符的5種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟
這篇文章主要介紹了Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

