2016-08-23 2 views
1

Я написал сценарий для выполнения telnet, который я хотел использовать для отправки команд моему Device Under Test (маршрутизатору).Как связаться с маршрутизатором

Моего Telnet Сценарий:

import sys, time, telnetlib 

sys.path.insert(0, '/tmp') 
import options 

def telnet_connect(): 

     HOST = "%s" %options.DUT_telnet_ip 
     PORT = "%s" %options.DUT_telnet_port 
     username = "%s" %options.DUT_telnet_username 
     password = "%s" %options.DUT_telnet_password 

     tn = telnetlib.Telnet(HOST, PORT, 10) 
     time.sleep(5) 
     tn.write("\n") 
     tn.read_until("login:", 2) 
     tn.write(username) 
     tn.read_until("Password:", 2) 
     tn.write(password) 
     tn.write("\n") 
     response = tn.read_until("$", 5) 
     return response 

def telnet_close(): 
     response = tn.write("exit\n") 
     return response 

Я хочу использовать этот сценарий в другой программе, которая будет проверять версию маршрутизатора по telneting его. Я ожидаю сценарий, который вызовет мою вышеприведенную функцию для выполнения telnet и отправки других команд, а именно. «Версия» или «LS»

+1

Совершенно неясно, что ваш вопрос на самом деле ... –

+0

Если вы не изолируете то, что вы просите, вы получите свой вопрос взамен. –

+1

'tn' не определено в' telnet_close() '. Вероятно, вы хотите передать экземпляры telnet в качестве параметра. Как есть, это не будет выполнено. – dhke

ответ

1

Попробуйте сделать это больше как класс:

import sys, time, telnetlib 

sys.path.insert(0, '/tmp') 


class TelnetConnection(): 

    def init(self, HOST, PORT): 

     self.tn = telnetlib.Telnet(HOST, PORT, 10) 

    def connect(self, username, password): 
     tn = self.tn 
     tn.write("\n") 
     tn.read_until("login:", 2) 
     tn.write(username) 
     tn.read_until("Password:", 2) 
     tn.write(password) 
     tn.write("\n") 
     response = tn.read_until("$", 5) 
     return response 

    def close(self): 
     tn = self.tn 
     response = tn.write("exit\n") 
     return response 

# create here then a method to communicate as you wish 

Затем вы можете использовать его следующим образом:

import options 
HOST = "%s" %options.DUT_telnet_ip 
PORT = "%s" %options.DUT_telnet_port 
username = "%s" %options.DUT_telnet_username 
password = "%s" %options.DUT_telnet_password 
connection = TelnetConnection(HOST, PORT) 
connection.connect(username, password) 

connection.do_all_operations_you_want() # write your own method for that 

connection.close() 
+0

Большое спасибо –

Смежные вопросы