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'\n')

    # 输入登录密码
    tn.read_until(b'Password:')
    tn.write(password + b'\n')

    # 登录完毕后执行命令
    tn.read_until(finish)
    #print(commands)
    tn.write(commands+b'\r\n')
    time.sleep(10)#这里一定要等待10秒,因为你write命令以后,会等待很长时间,原因不详。
    # 执行完毕后,终止Telnet连接(或输入exit退出)
    tn.read_until(finish)
    tn.write(b'quit\r\n')

    #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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值