pythontelnet登錄
㈠ 如何實現python和telnet通信
1#-*-coding:utf-8-*-
2
3importtelnetlib
4
5'''Telnet遠程登錄:Windows客戶端連接Linux伺服器'''
6
7#配置選項
8Host='192.168.1.2'#Telnet伺服器IP
9username='admin'#登錄用戶名
10password='123456'#登錄密碼
11finish=':~$'#命令提示符(標識著上一條命令已執行完畢)
12
13#連接Telnet伺服器
14tn=telnetlib.Telnet(Host)
15
16#輸入登錄用戶名
17tn.read_until('login:')
18tn.write(username+' ')
19
20#輸入登錄密碼
21tn.read_until('Password:')
22tn.write(password+' ')
23
24#登錄完畢後,執行ls命令
25tn.read_until(finish)
26tn.write('ls ')
27
28#ls命令執行完畢後,終止Telnet連接(或輸入exit退出)
29tn.read_until(finish)
30tn.close()#tn.write('exit ')
如果解決了您的問題請採納!
如果未解決請繼續追問!
㈡ 【telnetlib】使用Python登錄Cisco交換機執行命令
更多內容請點擊 我的博客 查看,歡迎來訪。
telnetlib --- Telnet client
最近要對交換機埠進行控制,如果每次使用命令去操作確實挺麻煩的,就使用腳本一鍵實現,並有記錄日誌的功能。參考 https://blog.csdn.net/study_in/article/details/89338016
Telnet.read_until(expected, timeout=None) : #讀取連接伺服器後顯示的內容,直到遇到同 expected 相同的位元組串。或者等待時間大於 timeout 時直接向下運行。
Telnet.read_very_eager() : 讀取從上次IO阻斷到現在所有的內容,返回的是位元組串,需要進行 decode() 編碼。如果連接關閉或者沒有可用數據時會拋出 EOFError ,如果沒有其他可用的數據,返回的是 b"" ,除非在IAC中間,否則不會阻礙。
Telnet.open(host, port=23[, timeout]) : 連接到主機,埠號為第二個可選參數,默認為標準的Telnet埠(23),可選的 timeout 參數指定連接的超時時間,如果未指定,將使用全局默認超時設置。不要嘗試去重新打開一個已經連接的實例對象。
Telnet.close() : 關閉連接。
Telnet.write(buffer) : # 將一個位元組串(byte string)寫進socket,如果連接被阻塞,這也會被阻塞,如果連接關閉,會拋出 OSError 。
Telnet.interact() : telnet的交互功能,下面用了一個死循環保證用戶能夠一直輸入命令進行某些操作,也可以使用 Telnet.interact() 這個方法來使所連接終端持久化,不過官網說 (emulates a very mb Telnet client)直譯是一個非常愚蠢的客戶端。
使用python實現對交換機埠關閉、打開功能。
㈢ Python telnetlib模塊使用
telnetlib模塊使用
1、telnet 登錄祥此設備
2、將輸出的信息寫到list裡面
3、讀取毀敗想要的值或接謹余迅口屬性
下面是讀取介面的PVID
㈣ 我想用python腳本telnet電腦Ensp里的交換機,但是沒效果,也沒報錯,是有什麼問題嗎求解答
1、在備份配置之前進行ping操作,所有IP地址放在HW_IP_List.txt中,ping通的地址放到HW_IP_True.txt中,ping不通的地址放到HW_IP_False.txt中。
腳本文件icmp_reply.py
#!/usr/bin/python
# -*- coding:gb2312 -*-
#import tab
import time,os
start_time = int (time.time())
def hw_ping_test():
ips = open('HW_IP_List.txt','r')
ip_True = open('HW_IP_True.txt','w')
ip_False = open('HW_IP_False.txt','w')
count_True,count_False=0,0
for ip in ips.readlines():
ip = ip.replace('\n','')
return1= os.system('ping -n 1 -w 1 %s'%ip)
if return1 :
print 'ping %s is fail'%ip
ip_False.write(ip+'\n')
count_False += 1
else:
print 'ping %s is ok'%ip
ip_True.write(ip+'\n')
count_True += 1
ip_True.close()
ip_False.close()
ips.close()
end_Time = int(time.time())
print "time(sencond):",end_Time - start_time,"s"
print "ping OK IP:",count_True," ping False IP:",count_False
hw_ping_test()
2、編輯核心腳本,調用icmp_reply.py,程序執行時會先自動運行icmp_reply.py,調用生成的HW_IP_True.txt文件,先要選擇設備類型,然後選擇執行的動作,輸入TFTP伺服器地址,程序就開始執行選擇的相應的動作。
㈤ 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)