telnetpython
① python求大神幫助,如何判斷是否telnet成功
看官方文檔: https://docs.python.org/2/library/telnetlib.html
如果沒有正常打開,read_* 會拋出 EOFError, write 會拋出 socket.error
所以,標準的做法是把後面有read/write的部分統統放在一個 try 語句里,然後捕獲 EOFError 和 socket.error
② 怎樣寫python腳本控制telnet
使用Python實現Telnet遠程登錄。
Python中專門提供了telnetlib庫,用來完成基於telnet協議的通信功能。
利用telnetlib實現遠程登錄功能。
③ python telnet後如何保存執行tn.write()命令輸出的信息 ...
#python3中實現方法
import telnetlib
import os
def do_telnet(Host, username, password, finish,command):
'''Telnet遠程登錄:Windows客戶端連接ZTE olt'''
# 連接Telnet olt
tn = telnetlib.Telnet(Host, port=23, timeout=10)
tn.set_debuglevel(2)
# 輸入登錄用戶名
tn.read_until(b'Username:')
tn.write(username + '\n')
# 輸入登錄密碼
tn.read_until(b'Password:')
tn.write(password + '\n')
# 登錄完畢後執行命令
tn.read_until(finish)
tn.write(command+b'\n') #這種保存方法失敗,求決解
#要用read來獲取輸出內容,decode是將位元組碼數據解碼成人類可讀的數據
t = tn.read_very_eager().decode('utf-8')
#執行完畢後,終止Telnet連接(或輸入exit退出)
tn.read_until(finish)
tn.close() # tn.write('exit\n')
print ('finished')
#將結果作為返回值
return t
if __name__=='__main__':
# 配置選項
Host = '192.168.0.253' # Telnet伺服器IP
username = b'ZTE' # 登錄用戶名
password = b'zte' # 登錄密碼
finish = b'c300#' # 命令提示符
command = b'show mac'
#獲取返回的結果
content = do_telnet(Host, username, password, finish, command)
print(content)
④ python telnet 問題
在連接Windows操作系統的時候,1、讀取行問題,tn.read_until("login:"),tn.read_until("password:") 直接改成 tn.read_until("\n")
2、編碼的問題,如果直接 tn.write(user+"\n") 系統不識別,所以改成 tn.write(user.encode('ascii') + "\r\n".encode('ascii')) 問題即可解決。
⑤ 怎麼用Python對一個互動式的命令行程序進行交互
在cmd里運行這個互動式程序
然後其他就和python和cmd下的程序打交道一樣了
比如:
開本機telnet或ssh服務
通過python telnet或ssh到本機,榮國write啟動這個互動式程序,開始write and receive就好