Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 3.6 telnet
#1
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.")
micseydel wrote Jan-29-2018, 09:30 PM:
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.
Quote
#2
In my case all commands are executed but the print(tn.read_all().decode('ascii')) function do not print anything.
Quote
#3
(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"))
Quote
#4
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"))
Quote

Top Page

Forum Jump:


Users browsing this thread: 1 Guest(s)