感謝Python Library我能夠使用他們的示例遠程登錄到思科交換機,我將其用於學習目的,特別是學習python。Python Telnet腳本
然而,雖然所有的代碼似乎一般容易閱讀,我有點困惑,以下內容:
1 - 爲什麼使用下面 2- if語句爲什麼後使用「\ n」用戶名和密碼寫方法 3-爲什麼我不能讓我的bash終端上的輸出,當變化是逸岸承諾和成功
HOST = "172.16.1.76"
user = raw_input("Enter your Telnet username : ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("Username: ")
tn.write(user + '\n') <----- 2
if password: <----- 1
tn.read_until("Password: ")
tn.write(password + "\n") <------2
tn.write("show run \n")
time.sleep(5)
output = tn.read_all() <----- 3
print output
print "=" * 30
print "Configuration Complete."
我不知道,爲什麼使用上面的if語句,通常一旦你輸入用戶名,然後右鍵獲得密碼提示。爲什麼不能,我們只需要輸入:
tn.read_until("Username: ")
tn.write(user + '\n')
tn.read_until("Password: ")
tn.write(password + "\n")
至於第二點,爲什麼要使用的寫入方法的密碼和用戶名後的「\ n」,如果我們要按下回車鍵後,我們仍要添加呢?
好的,我想我明白了。謝謝!所以bascialt「IF語句」是返回提示輸入密碼,如果你這樣做,它使它成真,然後在設備提示符中查找密碼字段,並輸入input'ted(這樣的詞?)密碼。正確?至於「\ n」,我仍然需要手動輸入,雖然我輸入用戶名和密碼後,我會盡管「\ n」會爲我照顧這個。 – tafiela
注意腳本在telnet連接之前要求你輸入密碼。如果你只是按回車,密碼將是空的。當你用'if'命令行檢查密碼是否爲空時,如果密碼不爲空,那麼腳本會查看telnet輸出以查看密碼何時請求併發送。如果它是空的,腳本假定telnet不會要求輸入密碼。 – Nullman