Форум программистов, компьютерный форум CyberForum.ru

Python: Сети

Войти
Регистрация
Восстановить пароль
 
wollidol
1 / 1 / 0
Регистрация: 28.10.2009
Сообщений: 99
Записей в блоге: 1
#1

Функции python совместимость с с telnetlib - Python

08.12.2015, 17:48. Просмотров 707. Ответов 1
Метки нет (Все метки)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env python
import time
import telnetlib
HOST = "10.10.10.10"
def telnet():
        tn = telnetlib.Telnet(HOST)
        tn.read_until("login:")
        tn.write("логин\r")
        tn.read_until("Password:")
        tn.write("пароль\r")
        tn.write("enable\r")
        tn.read_until("Password:")
        tn.write("энейблпароль\r")
        return tn
def S6228(tn):
 
        #telnet()
        vlan = "show vlan id"
        vlan_id = " 2215 \r"
        tn.write(vlan + vlan_id)
        tn.write("stop")
        s = tn.read_until("stop")
        #print s
        index_l = s.index("Ethernet")
        s1 = s[index_l + 8: index_l + 20]
        tn.close()
#       tn = telnetlib.Telnet("10.10.10.10")
#       tn
        del tn
        telnet()
 
        tn.write("show interface ethernet status | include  " + s1 + " \r")
        time.sleep(0.5)
        tn.write("stop \r")
        w = tn.read_until("stop")
        index_w = w.index(s1)
        w1 = w[index_w + 25: index_w + 38]
        tn.close()
 
#       tn = telnetlib.Telnet("10.10.10.10")
        del tn
        telnet()
        tn.write("show mac-address-table interface ethernet " + s1 + " \r")
        time.sleep(0.5)
        tn.write("stop \r")
        b = tn.read_until("stop")
        time.sleep(0.5)
        index_b = b.index("2215")
        b1 = b[index_b + 5: index_b + 22]
        print "||port||" "||", s1, "||"
        print "||port state||" "||", w1, "||"
        print "||mac||" "||",b1,"||"
        tn.close()
        del tn
t = telnet()
S6228(t)
выдает ошибку
Код
Traceback (most recent call last):
  File "telnet.py", line 56, in <module>
    S6228(t)
  File "telnet.py", line 32, in S6228
    tn.write("show interface ethernet status | include  " + s1 + " \r")
UnboundLocalError: local variable 'tn' referenced before assignment
после закрытия соединения tn.close() все ломается. Если вытащить код из функции и написать отдельной программой - все работает. Как починить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2015, 17:48     Функции python совместимость с с telnetlib
Посмотрите здесь:
Python telnetlib не работает
Python Python - дифференциал функции
Python Python Функции, начинающему программисту!
Построение графика функции в Python Python
Python Python-функции для работы с устройствами ввода-вывода
Lisp Отображение и кольцевые списки. Ошибка дизайна в функции отображения в Python 2.x
Нужно установить к Python плагин, позволяющий вызывать матлабовские функции Python
Python PYTHON вычислить приближенное значение функции arcsin(𝑥), исправить программу
Python matplotlib отобразить график функции в заданной точке собственной формы Python
Совместимость
Совместимость

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ntlinuxnt
$ su
1426 / 466 / 64
Регистрация: 18.11.2010
Сообщений: 2,620
Записей в блоге: 2
Завершенные тесты: 3
08.12.2015, 23:10     Функции python совместимость с с telnetlib #2
Вообще ошибка в том что переменная используется перед ее объявлением. 29 - 32 строка вы удаляете но не присваиваете снова, вам там надо не просто telnet() вызвать а tn=telnet()
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru