Python Forum

Full Version: 3.6 telnet
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Anyone have a function script using 3.6 for telnet? The script below doesn't accomplish anything.RUnning a debug on the switch I see a telnet attempt but I don't see a login for the user and none of the commands run.

import getpass
import sys
import telnetlib

HOST = "X.X.X.X" # I use the actual IP here.
user = input("Enter your Username: ")
password = getpass.getpass()
print("passed the getpass step")

tn = telnetlib.Telnet(HOST)


tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
#tn.write(b"user" + "\n")
if password:
    tn.read_until(b"Password: ")
    tn.write(password.encode('ascii') + b"\n")

# not needed due login privilege 15 to tn.write("enable\n")
tn.write(b"config t" + "\n".encode('ascii'))
print("config t complete")
tn.write(b"interface loopback 0" + "\n".encode('ascii'))
print("interface loopback 0")
tn.write(b"ip address 1.1.1.1 255.255.255.255" + "\n".encode('ascii'))
print("IP address complete")
tn.write(b"end" + "\n".encode('ascii'))
tn.write(b"exit" + "\n".encode('ascii'))

print(tn.read_all().decode('ascii'))
input("\n\nPress the enter key to exit.")
In my case all commands are executed but the print(tn.read_all().decode('ascii')) function do not print anything.
(May-04-2018, 10:27 PM)snagwekar Wrote: [ -> ]In my case all commands are executed but the print(tn.read_all().decode('ascii')) function do not print anything.

You can try this , it works for me, let me know if it did for you.

import getpass
import sys
import telnetlib

host = "10.0.0.10"
user = input("Enter Username:")
password = getpass.getpass()
tn = telnetlib.Telnet(host)
tn.read_until(b"Username:")
tn.write(user.encode("ascii")+ b"\n")

if password:
tn.read_until(b"Password:") (indent)
tn.write(password.encode("ascii")+b"\n") (indent)

tn.write(b"en \n")
tn.write(b"cisco\n")
tn.write(b"conf t\n")
tn.write(b"int loopback 1\n")
tn.write(b"ip add 1.1.1.1 255.255.255.255\n")
tn.write(b"end\n")
tn.write(b"exit\n")
print(tn.read_all().decode("ascii"))
Hi Pallavi,

I tried using your code and I get the following error.

Traceback (most recent call last):

File "telnet.py", line 18, in <module>

tn.read_until(b"Password: ") (indent)

NameError: name 'indent' is not defined

How can I fix it.?



(Jul-25-2018, 03:09 PM)pallavi Wrote: [ -> ]
(May-04-2018, 10:27 PM)snagwekar Wrote: [ -> ]In my case all commands are executed but the print(tn.read_all().decode('ascii')) function do not print anything.

You can try this , it works for me, let me know if it did for you.

import getpass
import sys
import telnetlib

host = "10.0.0.10"
user = input("Enter Username:")
password = getpass.getpass()
tn = telnetlib.Telnet(host)
tn.read_until(b"Username:")
tn.write(user.encode("ascii")+ b"\n")

if password:
tn.read_until(b"Password:") (indent)
tn.write(password.encode("ascii")+b"\n") (indent)

tn.write(b"en \n")
tn.write(b"cisco\n")
tn.write(b"conf t\n")
tn.write(b"int loopback 1\n")
tn.write(b"ip add 1.1.1.1 255.255.255.255\n")
tn.write(b"end\n")
tn.write(b"exit\n")
print(tn.read_all().decode("ascii"))