您的位置:首页 > 编程语言 > Python开发

python实现Telnet远程登陆到设备并执行命令

2015-07-20 17:02 976 查看
#encoding=utf-8
import telnetlib
import time

def do_telnet(Host, username, password, finish, commands):

# 连接Telnet服务器
tn = telnetlib.Telnet(Host, port=23, timeout=10)
   #timeout只是在初始化socket连接时起作用,而一旦连接成功后出现等待就不起作用了,比如使用read_until方式获取内容时返回的内容与指定的内容不符合,那么就会造成提示等待的情况,这时timeout是不起作用的,这个socket连接会一直保持着,永生不死.一种解决方案是,使用threading模块,利用线程模式来解决.
tn.set_debuglevel(2)

# 输入登录用户名
tn.read_until('ENTER USERNAME < ')
tn.write(username + '\r\n')

# 输入登录密码
tn.read_until('ENTER PASSWORD < ')
tn.write(password + '\r\n')

# 登录完毕后执行命令
tn.read_until(finish)
for command in commands:
result = tn.write('%s\r\n' % command);

#执行完毕后,终止Telnet连接(或输入exit退出)
tn.read_until('COMMAND EXECUTED')
tn.close() # tn.write('exit\n')

if __name__=='__main__':
# 配置选项
Host = '10.68.165.25' # Telnet服务器IP
username = 'SYSTEM'   # 登录用户名
password = 'SYSTEM'  # 登录密码
finish = 'LEVEL COMMAND <___>'      # 命令提示符
commands = ['ZUSI;']
do_telnet(Host, username, password, finish, commands)


下一步:如何将write的执行结果输出???
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: