2016-10-12 5 views
2

Все, привет!Клиент Python telnet

В настоящее время я пытаюсь использовать Telnetlib (https://docs.python.org/2/library/telnetlib.html) для Python 2.7 для связи с некоторыми внешними устройствами.

У меня есть основы, установленные до:

import sys 
import telnetlib 
tn_ip = xxxx 
tn_port = xxxx 
tn_username = xxxxx 
tn_password = xxxx 

searchfor = "Specificdata" 

def telnet(): 
    try: 
     tn = telnetlib.Telnet(tn, tn, 15) 
     tn.set_debuglevel(100) 
     tn.read_until("login: ") 
     tn.write(tn_username + "\n") 
     tn.read_until("Password: ") 
     tn.write(tn_password + "\n") 
     tn.read_until(searchfor) 
     print "Found it!" 
    except: 
     print "Unable to connect to Telnet server: " + tn_ip 

telnet() 

И я пытаюсь пройти через все данные, это выводящие (что довольно много), пока я не поймать, что мне нужно. Несмотря на то, что он входит в систему довольно хорошо, и даже находит данные, которые я ищу, и распечатывает найденное мной сообщение, я пытаюсь сохранить соединение с telnet открытым, поскольку могут быть другие данные (или повторяющиеся данные) я бы отсутствовал, если бы я вышел из системы и зашел в систему.

Кто-нибудь знает, как это сделать?

+0

У вас есть список конкретных фрагментов информации, которые вам нужны, или просто хотите, чтобы Telnet-соединение оставалось открытым на неопределенный срок? – VergeA

+0

Спасибо за ваш комментарий! Я ищу несколько фрагментов информации. Когда срабатывает, что-то еще активируется, поэтому я действительно хотел бы сохранить соединение открытым, одновременно сканируя. – user5740843

+0

Вы можете сделать объект подключения telnet переменной экземпляра класса. Во время построения/инициализации класса выполните процедуры входа в систему, а затем вы можете вызвать метод read_until() столько раз, сколько вам нужно, делегируя переменной экземпляра. Когда класс разрушен/если вам больше не требуется соединение, закройте его. – VergeA

ответ

2

Кажется, что вы хотите подключиться к внешнему устройству один раз и распечатывать сообщение каждый раз, когда вы видите конкретную строку.

import sys 
import telnetlib 
tn_ip = "0.0.0.0" 
tn_port = "23" 
tn_username = "xxxxx" 
tn_password = "xxxx" 

searchfor = "Specificdata" 


def telnet(): 
    try: 
     tn = telnetlib.Telnet(tn_ip, tn_port, 15) 
    except: 
     print "Unable to connect to Telnet server: " + tn_ip 
     return 
    tn.set_debuglevel(100) 
    tn.read_until("login: ") 
    tn.write(tn_username + "\n") 
    tn.read_until("Password: ") 
    tn.write(tn_password + "\n") 
    while True: 
     tn.read_until(searchfor) 
     print "Found it" 

telnet() 
Смежные вопросы