python-telnetファーウェイスイッチにログインし、コマンドを実行
2046 ワード
@Author: Mr.Li
@Date: 2019-12-26 10:00:50
@LastEditTime : 2020-02-26 17:28:46
@LastEditors : Please set LastEditors
@Description: In User Settings Edit
@FilePath: \untitled\ssh.py
'''
import paramiko
from telnetlib import Telnet
import time
import
class SshTool:
def __init__(self, host: str, username: str, password: str, sysview: str):
self.login_dict = {
'host': host,
'username': username,
'password': password,
'sysview': sysview,
}
def telnet_on(self, command: str):
tn = Telnet(self.login_dict['host'], port=23, timeout=10)
# tn.set_debuglevel(2)
tn.read_until(b"Username:")
tn.write(self.login_dict['username'].encode('ascii') + b'
')
tn.read_until(b"Password:")
tn.write(self.login_dict['password'].encode('ascii') + b'
')
tn.read_until(b"Chaos")
tn.write(self.login_dict['sysview'].encode('ascii') + b'
')
tn.write(command.encode('ascii') + b'
')
time.sleep(2)
result_list = []
# command_result = tn.read_very_eager().decode("ascii")
# print(command_result)
while (True):
command_result = tn.read_very_eager().decode('ascii')
result_list.append(command_result)
if '---- More ----' in command_result.strip():
tn.write(b" ")
time.sleep(0.5)
else:
break
result_str = "
".join(result_list)
return result_str
from ssh import SshTool
if __name__ == '__main__':
object_telnet = SshTool('172.16.20.254', 'root', 'password', 'system-view')
result = object_telnet.telnet_on(input(" :"))
print(result)