• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

codingrec

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

[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(),最多加个延迟就可拿到全部的结果。

posted on 2014-03-04 16:41  codingrec  阅读(15144)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3