利用python3的telnetlib模块

远程登录ros,输入帐号密码,然后执行命令,并导出结果到txt文本: 不过实际操作这种方式不行,因为telnet导出来的文本文件,带颜色编码,根本无法看哦。

  1. # !/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:lzd
  4. import time
  5.  
  6. def do_telnet(Host, username, password, finish, commands):
  7. import telnetlib
  8. '''''Telnet远程登录:Windows客户端连接Linux服务器'''
  9.  
  10. # 连接Telnet服务器
  11. tn = telnetlib.Telnet(Host, port=23510)
  12. tn.set_debuglevel(2)#开启telnet调试模式
  13.  
  14. # 输入登录用户名
  15. tn.read_until(b'Login: ')
  16. tn.write(username + b'\n')
  17.  
  18. # 输入登录密码
  19. tn.read_until(b'Password:')
  20. tn.write(password + b'\n')
  21.  
  22. # 登录完毕后执行命令
  23. tn.read_until(finish)
  24. #print(commands)
  25. tn.write(commands+b'\r\n')
  26. time.sleep(10)#这里一定要等待10秒,因为你write命令以后,会等待很长时间,原因不详。
  27. # 执行完毕后,终止Telnet连接(或输入exit退出)
  28. tn.read_until(finish)
  29. tn.write(b'quit\r\n')
  30.  
  31. #time.sleep(3)
  32.  
  33. result = tn.read_all()
  34. file_object = open('result.txt', 'wb')
  35. file_object.write(result)
  36. file_object.close()
  37. print('Finish')
  38.  
  39. tn.close()
  40. if __name__ == '__main__':
  41. # 配置选项
  42. Host = '192.168.200.100' # Telnet服务器IP
  43. username = 'xxxx'.encode(encoding='utf-8') # 登录用户名
  44. password = 'xxxx'.encode(encoding='utf-8') # 登录密码
  45. finish = '>'.encode(encoding='utf-8') # 命令提示符
  46. commands = 'ping 192.168.12.254 c 10'.encode(encoding='utf-8')
  47. do_telnet(Host, username, password, finish, commands)

python3+ros+telnet+telnetlib的更多相关文章

  1. python3+ros api

    官方文档:https://wiki.mikrotik.com/wiki/Manual:API_Python3 # !/usr/bin/env python# -*- coding:utf-8 -*-# ...

  2. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  3. 自建免费的代理ip池

    00x01--- 前言 因为爬虫被禁ip这样的反扒真的很凶,但自从建了一个代理ip池以后,反反扒就可以跟的上节奏.当然你也可以上网上各种代理平台自己付费.这些平台当然很方便提供api调用,还不用自己验 ...

  4. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  5. 使用Python操作Memcached

    1.安装 yum install memcached easy_install python-memcached 2.操作memcached import memcache mc = memcache ...

  6. Python Standard Library

    Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...

  7. Python3+telnetlib实现telnet客户端

    一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...

  8. python3+telnetlib实现简单自动测试

    1 telnetlib介绍 1.1 简介 官方介绍文档:telnetlib -- Telnet 客户端 - Python 3.9.6 文档 telnetlib 模块提供一个实现Telnet协议的类 T ...

  9. 在ROS中使用Python3

    Use Python3 in ROS. 以下内容在Ubuntu 16.04 x64和ROS kinetic中测试通过 事实上,只要在.py文件加上python3的shebang,rosrun的时候就会 ...

随机推荐

  1. JNI_Z_09_Java的字符串

    ZC: jstring 就是 Java中的String对象 ZC: 10.8 Unicode字符串结尾(http://www.360doc.cn/article/14233282_321497569. ...

  2. GO学习笔记:函数传值与传指针

    当我们传一个参数值到被调用函数里面时,实际上是传了这个值的一份copy,当在被调用函数中修改参数值的时候,调用函数中相应实参不会发生任何变化,因为数值变化只作用在copy上. 为了验证我们上面的说法, ...

  3. WSL安装xfce4

    参考:https://github.com/Microsoft/WSL/issues/637 安装组件 1. win10 上安装 Xming https://sourceforge.net/proje ...

  4. hdu4619

    题解: 最大独立集问题 显然对于每一对交叉的建边 然后求出最大独立集 最大独立集=n-最大匹配 代码: #include<cstdio> #include<cmath> #in ...

  5. Java堆、栈和常量池以及相关String的详细讲解(转)

    一:在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register). 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译器根据 ...

  6. MongoDB 高可用集群架构简介

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. 转载自严澜的博文——<如何搭建高效的 ...

  7. Excel 读写操作

    读 import xlrd from xlrd.book import Book from xlrd.sheet import Sheet from xlrd.sheet import Cell wo ...

  8. HAWQ取代传统数仓实践(十二)——维度表技术之分段维度

    一.分段维度简介 在客户维度中,最具有分析价值的属性就是各种分类,这些属性的变化范围比较大.对某个个体客户来说,可能的分类属性包括:性别.年龄.民族.职业.收入和状态,例如,新客户.活跃客户.不活跃客 ...

  9. Happening in delphi world

    Happy New Year! Delphi XE5 Update 2 Recent VCL enhancements New product features for old product use ...

  10. Debian, Ubuntu, LinuxMint 安裝 MySQL 5.7, 5.6, 5.5

    以下會示範在 Debian, Ubuntu 及 LinuxMint 分別安裝 MySQL 5.7, 5.6, 5.5 的方法. 首先按照需要的安裝的 MySQL 版本, 加入相應的 Repositor ...