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

Python: Сети

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

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

08.12.2015, 17:48. Просмотров 731. Ответов 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() все ломается. Если вытащить код из функции и написать отдельной программой - все работает. Как починить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2015, 17:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции python совместимость с с telnetlib (Python):

telnetlib не работает - Python
добрый день! подскажите, почему не работает этот код? #!/usr/bin/env python # -*- coding: utf-8 -*- import telnetlib ...

Построение графика функции в Python - Python
Здравствуйте, у меня такая проблема: нужно построить график функции y=4*ln(x)*(e^x)+(x^3) Пытаюсь сделать это следующим образом:points= ...

Начальный уровень Python. Функции - Python
Привет, взялся за изучение Python, хочу написать 2 функции которые будут шифровать и расшифровывать символы. То есть при шифровке сдвигать...

Python-функции для работы с устройствами ввода-вывода - Python
Здравствуйте! Можно ли написать функции блокировки и разблокировки клавиатуры, только на python (- C++ я не знаю), использующие драйвер...

Нужно установить к Python плагин, позволяющий вызывать матлабовские функции - Python
Коллеги, Нужно установить к Python плагин, позволяющий вызывать матлабовские функции. У кого есть опыт инсталляции и настройки...

PYTHON вычислить приближенное значение функции arcsin(𝑥), исправить программу - Python
Вычислите приближенное значение функции arcsin(x) = 𝑥 + 1/2 x^3/3 + 1/2 3/4 x^5/5 + 1/2 3/4 5/6 x^7/7 + ⋯ посредством вычисления...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ntlinuxnt
$ su
1436 / 478 / 64
Регистрация: 18.11.2010
Сообщений: 2,662
Записей в блоге: 2
Завершенные тесты: 3
08.12.2015, 23:10 #2
Вообще ошибка в том что переменная используется перед ее объявлением. 29 - 32 строка вы удаляете но не присваиваете снова, вам там надо не просто telnet() вызвать а tn=telnet()
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2015, 23:10
Привет! Вот еще темы с ответами:

Python matplotlib отобразить график функции в заданной точке собственной формы - Python
Язык Python.Есть график функции. Не важно какой. Например такой 3D график. При компиляции построенный график открывается в другом окне,...

Python - момент истины. Python - как оружие возмездие против системы - Python
Какие модули в python мне нужны для взлома баз данных? Перехвата информации? Внедрения в систему? Добавлено через 10 минут Хочу...

Как из Python скрипта выполнить другой python скрипт? - Python
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно передать еще передать скрипту аргументы.

Что лучше учить Python 2 или Python 3? - Python
хочу начать учить питон но полазив в нете, частенько попадалась информация что вроде как 2 будет долго жить и в то же время много кто на 3...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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