免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 21158 | 回复: 3
打印 上一主题 下一主题

python实现telnet的分页显示内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-31 17:52 |只看该作者 |倒序浏览
调用python的telnetlib,telnet到目标机发送查询命令,但是回显比较大会分几页显示,需要按回车来显示后面的内容,如果使用自带的read方法来操作,分页间没有eof只能超时后读到第一页内容;如果不使用expect,请问各位有什么好的实现方法读取所有回显内容吗?
  def sendcmd(self,cmd,timeout=10):
    """
    send cmd to NE
    @cmd:ne cmd
   
    B{Example:}
      - C{sendcmd(show arp)}
    """
    rtn = ''
    self.write_tn(cmd+'\n')
    self.__tn.read_lazy()
    if self.__port ==MTN_PORT:
      rtn=self.__tn.read_until("$>",timeout)
    elif self.__port==DEV_PORT:
      rtn=self.__tn.read_until("->",timeout)
    elif self.__port==CLI_PORT:
      rtn=self.__tn.read_until("#",timeout)
   
    rtn += self.__tn.read_very_eager()
    self.echo_msg(rtn)
   
    if len(rtn) == 0:
        self.logger.error('Sorry,command operation failed!')
   
    return rtn
  
  

论坛徽章:
0
2 [报告]
发表于 2012-02-09 15:34 |只看该作者
以前用过的一个方法是读到 有 --more--的文本的时候就认为还有下一面显示,于是发个按键比如回车过去,
这样一页一页的抓内容,最后把所有内容都 连接起来

论坛徽章:
0
3 [报告]
发表于 2012-02-13 10:53 |只看该作者
txw1958 发表于 2012-02-09 15:34
以前用过的一个方法是读到 有 --more--的文本的时候就认为还有下一面显示,于是发个按键比如回车过去,
这 ...

操作方法自然是这样  就是用python的问题  刚接触python
查了下telnetlib的包
暂时先用下面这个方法解决,但是也存在一些小问题
def showTask(self,cmd='i',waittime=2):
    """
    send cmd "i" to NE 23 port
    @cmd:
    @return:all task
    B{Example:}
      - C{showTask()}
    """
    rtn = ''
    self.write_tn(cmd+'\n')
    self.__tn.read_lazy()
    if self.__port == 23:        
        while 1:
          res = self.__tn.expect(["--More--"],waittime)
           rtn +=res[2]
          if res[0] >= 0:
            self.write_tn('\n')
          else:
            break   
    if len(rtn) == 0:
        self.logger.error('Sorry,command operation failed!')
   
    return rtn

论坛徽章:
0
4 [报告]
发表于 2019-12-11 16:42 |只看该作者
如果是telnet交换机的话,在line vty 0 4里面设置length 0就可以一次全部显示了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP