[python]telnetlib库的使用
telnetlib使用比较简单,写了个例子,可以看看整个telnet过程:
print('------------------------connect---------------------------') # 连接Telnet服务器 tn = telnetlib.Telnet(host, port) tn.set_debuglevel(5) print('-------------------------login----------------------------') # 输入登录用户名 tn.read_until('login:') tn.write(username + '\n') if(password != ''): # 输入登录密码 tn.read_until('password:') tn.write(password + '\n') # 登录完毕后执行命令 print('-----------------------send over---------------------------') tn.read_until(finish) tn.write(commands + '\n') print('-------------------------output----------------------------') time.sleep(.1) result = tn.read_very_eager() print result tn.close() # tn.write('exit\n') print('--------------------------end------------------------------')
流程和手工进行telnet流程相一致,主要需要注意两点内容:
1.输入后需要等待相应的提示符。比如:连接完成需要等待用户名提示符,用户名输入完后需要等待密码提示符等等。
2.在等待telnet命令结果时候的处理。如果使用read_until(),可能无法判断到底会回显什么字符串,如果不一致会一直卡在这里。如果用read_all()的话,如果回显没返回EOF也会卡在这里。比较好的做法是使用read_very_eager(),最多加个延迟就可拿到全部的结果。
浙公网安备 33010602011771号