Найти - Пользователи
Полная версия: вопрос по работе по telnet-соединению
Начало » Python для новичков » вопрос по работе по telnet-соединению
1
MarkHammer
Подскажите пожалуйста - захожу телнетом на CLI, получаю приглашение на ввод команд, ввожу команды, но чтобы получить результат выполнения - мне получается надо отконнектиться от устройства…, а потом соотвественно снова коннектиться, чтобы продолжить…

результаты получаю при помощи :
ddd = (tn.read_all().decode('latin-1'))
rez = str(re.findall (r'82(+)',ddd))

что не так делаю ? почему нельзя считать результат в переменную ddd, находясь в удаленном терминале ?

пробовал также давать несколько команд, а затем отконнектился и считал результат в переменную
ddd = (tn.read_all().decode('latin-1'))
print (ddd) при этом выдал только результат последней команды… - может есть другие методы решения этой задачи ???



MarkHammer
import getpass
import telnetlib

HOST = “localhost”
user = input(“Enter your remote account: ”)
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b“login: ”)
tn.write(user.encode('ascii') + b“\n”)
if password:
tn.read_until(b“Password: ”)
tn.write(password.encode('ascii') + b“\n”)

tn.write(b“ls\n”)
tn.write(b“exit\n”)

print(tn.read_all().decode('ascii'))



это пример из tutorial официального сайта python.org и в этом примере тоже tn.read_all вынесен за пределы telnet-соединения… есть ли возможность прочесть результаты внутри (не выполняя дисконнект) ? допусти так :

import getpass
import telnetlib

HOST = “localhost”
user = input(“Enter your remote account: ”)
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b“login: ”)
tn.write(user.encode('ascii') + b“\n”)
if password:
tn.read_until(b“Password: ”)
tn.write(password.encode('ascii') + b“\n”)

tn.write(b“ls\n”)

print(tn.read_all().decode('ascii'))

tn.write(b“exit\n”)

или какой-то другой способ прочесть все данные (в данном примере выполнения команды ls), кроме функции read_all ?


from telnetlib import Telnet
from re import findall
HOST2 = “10.0.0.25”
tn2 = Telnet(HOST2)
tn2.read_until(b“login: ”)
tn2.write(b'ddd' + b“\n”)
tn2.read_until(b“Password: ”)
tn2.write(b'nnn' + b“\n”)
tn2.read_until(b“->”)

cell = 0

while cell != b'exit':
number = input ('Enter number: ‘)
cell = number.encode()
if cell in range(1,501):

tn2.write (b’cat files1 | grep cell“' + cell + b'|”' + b“\n”)
s = (tn.read_all().decode('latin-1'))

в этом месте прога почему-то виснет… - как решить эту проблему ???
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB