2
大家好,你好!Python遠程登錄客戶端
我目前正在嘗試爲Python 2.7使用Telnetlib(https://docs.python.org/2/library/telnetlib.html)與某些外部設備進行通信。
我已經建立了基礎:
import sys
import telnetlib
tn_ip = xxxx
tn_port = xxxx
tn_username = xxxxx
tn_password = xxxx
searchfor = "Specificdata"
def telnet():
try:
tn = telnetlib.Telnet(tn, tn, 15)
tn.set_debuglevel(100)
tn.read_until("login: ")
tn.write(tn_username + "\n")
tn.read_until("Password: ")
tn.write(tn_password + "\n")
tn.read_until(searchfor)
print "Found it!"
except:
print "Unable to connect to Telnet server: " + tn_ip
telnet()
我試圖去通過所有它的輸出(這是相當多)的數據,直到我趕上我需要什麼。雖然它的登錄非常好,甚至可以找到我正在查找的數據,並打印出我發現的信息,但我試圖採用一種方法來保持與telnet的連接處於打開狀態,因爲可能存在其他數據(或重複數據)我會失蹤,如果我註銷並重新登錄。
有誰知道如何做到這一點?
您是否有一份您需要的特定信息的列表,或者您是否希望Telnet連接無限期地保持打開狀態? – VergeA
謝謝您的評論!我正在尋找幾條信息。當被觸發時,其他的東西會被激活,所以我真的很想保持連接打開,同時掃描。 – user5740843
您可以使telnet連接對象成爲類的實例變量。在構造/初始化類的過程中,執行登錄過程,然後通過委託給實例變量,可以根據需要多次調用read_until()方法。當班級被破壞/當你不再需要連接時,關閉它。 – VergeA