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)
  • 相关阅读:
    B
    A
    P1057 传球游戏
    P1702 突击考试
    P1394 山上的国度
    P2117 小Z的矩阵
    P1510 精卫填海
    P1294 高手去散步
    P1071 潜伏者
    保留
  • 原文地址:https://www.cnblogs.com/itfat/p/7445198.html
Copyright © 2011-2022 走看看