Python Forum
3.6 telnet - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Networking (https://python-forum.io/forum-12.html)
+--- Thread: 3.6 telnet (/thread-7912.html)



3.6 telnet - eyler - Jan-29-2018

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.")



RE: 3.6 telnet - snagwekar - May-04-2018

In my case all commands are executed but the print(tn.read_all().decode('ascii')) function do not print anything.


RE: 3.6 telnet - pallavi - Jul-25-2018

(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"))


RE: 3.6 telnet - Khanhamid90 - Jun-28-2019

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"))