2015-08-27 2 views
0

установить питон 2.7.10 и попробовать этот код:Python, доступ к сиг коммутатору через Telnet

import getpass 
import sys 
import telnetlib 

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

tn = telnetlib.Telnet(HOST,23,5) 

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

tn.write("en\n") 
tn.write("sh ver\n") 
tn.write("exit\n") 

print tn.read_all() 

и у меня есть эта ошибка:

D:>test.py
Enter your remote account: vfomin
Password:
Traceback (most recent call last):
File "D:\test.py", line 21, in
print tn.read_all()
File "C:\Python27\lib\telnetlib.py", line 385, in read_all self.fill_rawq()
File "C:\Python27\lib\telnetlib.py", line 576, in fill_rawq buf = self.sock.recv(50)
socket.timeout: timed out

Как я могу подключиться к 172.17.0.42 с питоном?

ответ

1

Кажется, вы используете Python3, поэтому вам нужно input, а не raw_input.

0

Попробуйте эту библиотеку (работает на Python 2.x):

pip install git+https://github.com/sergeyzelyukin/cisco-telnet.git 

import ciscotelnet 
with ciscotelnet.CiscoTelnet(host, verbose = False) as cisco: 
    #if cisco.login(final_mode=CiscoTelnet.MODE_ENABLE, user="john", user_pass="12345678", enable_pass="cisco"): 
    if cisco.login(final_mode=CiscoTelnet.MODE_ENABLE, line_pass="abcdef", enable_pass="cisco"): 
    print cisco.cmd("sh int status | inc Fa0/1") 
    print cisco.conf(["interface fast0/1", "descr blank", "load-interval 300"]) 
    print cisco.wr()