отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 
cancel
399
Просмотры
10
Полезный материал
10
Ответы
MariiaAgeeva1030
Beginner

Подключение к роутеру с помощью скрипта Python

Я пытаюсь подключиться к роутеру R1 в GNS3 с помощью скрипта на Python

 

import getpass
import sys
import telnetlib

HOST = "192.168.1.1"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

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

tn.write("enable\n")
tn.write("cisco\n")
tn.write("conf t\n")
tn.write("exit\n")
tn.write("exit\n")

 

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

Но строчка tn = telnetlib.Telnet(HOST)не работает (терминал замораживается), то есть не получается подключение к роутеру, хотя и telnet-соединение с терминала R1 работает нормально.

  • BGP
10 ОТВЕТ 10
Sergey Lisitsin
Rising star

Добрый день,

 

А скрипт Вы запускаете с администраторскими правами?

 

В терминале я проверила состояние port 23 с помощью команды nmap, ее состояние closed. Я использую Mac OS, и не знаю как это разрешить

Покажите пожалуйста вывод 

show run | sec line

c R1.

R1#show run | sec line
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login local
 transport input all

Так, минуточку... А какая у Вас топология подключения? Вы пытаетесь со своего Mac подключиться на маршрутизатор, который у Вас на нём же работает в GNS3?

Да, из терминала Mac OS, я подключаюсь с помощью telnet к роутеру из топологии в GNS3

А как связана Ваша виртуальная сеть с Вашей физической?

Я поменяла кое-что, теперь если я из своего терминала внешнего делаю 

telnet localhost:5000

у меня получается подключиться к роутеру. Попробую скрипт скажу !

WhatsApp Image 2020-07-20 at 15.27.20.jpeg

В таком случае Вам нужно подключаться к localhost и на порт 5000. Но я бы рекомендовал вместо прямого доступа с Вашего Мака использоват в топологии контейнер Docker с Linux и подключаться оттуда.

Sergey Lisitsin
Rising star

И ещё - у Вас отсутствует "b" в строке, где Вы ожидаете Password.

tn.read_until("Password: ")

Должно быть 

tn.read_until(b"Password: ")