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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM