zoukankan      html  css  js  c++  java
  • python3+ros+telnet+telnetlib

    利用python3的telnetlib模块

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

    # !/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:lzd
    import time
    
    def do_telnet(Host, username, password, finish, commands):
        import telnetlib
        '''''Telnet远程登录:Windows客户端连接Linux服务器'''
    
        # 连接Telnet服务器
        tn = telnetlib.Telnet(Host, port=23510)
        tn.set_debuglevel(2)#开启telnet调试模式
    
        # 输入登录用户名
        tn.read_until(b'Login: ')
        tn.write(username + b'
    ')
    
        # 输入登录密码
        tn.read_until(b'Password:')
        tn.write(password + b'
    ')
    
        # 登录完毕后执行命令
        tn.read_until(finish)
        #print(commands)
        tn.write(commands+b'
    ')
        time.sleep(10)#这里一定要等待10秒,因为你write命令以后,会等待很长时间,原因不详。
        # 执行完毕后,终止Telnet连接(或输入exit退出)
        tn.read_until(finish)
        tn.write(b'quit
    ')
    
        #time.sleep(3)
    
        result = tn.read_all()
        file_object = open('result.txt', 'wb')
        file_object.write(result)
        file_object.close()
        print('Finish')
    
        tn.close()
    if __name__ == '__main__':
        # 配置选项
        Host = '192.168.200.100'  # Telnet服务器IP
        username = 'xxxx'.encode(encoding='utf-8')  # 登录用户名
        password = 'xxxx'.encode(encoding='utf-8')  # 登录密码
        finish = '>'.encode(encoding='utf-8')  # 命令提示符
        commands = 'ping 192.168.12.254 c 10'.encode(encoding='utf-8')
        do_telnet(Host, username, password, finish, commands)
  • 相关阅读:
    10_树基础部分
    11_多线程
    14_JUC
    Servlet代码实例
    关于JSP引用资源路径
    Struts2代码实例
    hadoop三大核心组件介绍
    presto自定义函数开发
    git使用
    hive优化总结
  • 原文地址:https://www.cnblogs.com/itfat/p/7445198.html
Copyright © 2011-2022 走看看