Python Forum

Full Version: Telnetlib reading output
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

Im using a python telnetlib script to communicate with a device.

I want to keep an open connection without exiting. My problem is that i cant read the output before sending the exit command.
Based on the telnetlib documentation i tested with read_very_eager() and read_eager() without success.

An example of the code:
HOST = "192.168.79.182"
user = "root"
password = "xxx"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"username: ")
tn.write(user.encode('ascii') + b"\n")
if password:
    tn.read_until(b"password: ")
    tn.write(password.encode('ascii') + b"\n")

tn.write(b'show time\n')
Output = (tn.read_very_eager().decode('ascii'))
print(Output)
any ideas would be appreciated
Are you able to see any logs from the device just to make sure that the script can login to your device?

From your command verify the ff.
tn.read_until(b"username: ") <- Make sure script read the correct string or login promt
tn.write(user.encode('ascii') + b"\n")
if password:
tn.read_until(b"password: ")
tn.write(password.encode('ascii') + b"\n")

after this you read this #(priv mode) before sending the command this is for cisco.. but you can use the same method to other platform.
tn.read_until(b”#”)
tn.write(b'show time\n')
tn.read_until(b”#”) <-- once the show time fully executed script should see this before reading or exiting.

To read
readoutput = tn.read_all().decode(‘ascii’)
print readoutput