0
0 комментариев

Python 3.8 Windows

За помощь в написании спасибо stud_55@mail.ru

Здравствуйте задача сбор информации с сетевого оборудования

Здравствуйте возникла проблема в ходе выполнения скрипта

import telnetlib
import time
import random
import string
import datetime

iprouter = ‘192.168.1.1’
user = ‘admin’
password = ‘123’
VPNip = ‘192.168.1.10’

#Создаем переменную текущей даты и времени
now = datetime.datetime.now()
nowt = (now.strftime(«%d-%m-%Y %H:%M»))

tn = telnetlib.Telnet(iprouter)
tn.read_until(b»Login: «, timeout=2)
tn.write(user.encode(‘ascii’) + b»\n»)
tn.read_until(b»Password: «, timeout=2)
tn.write(password.encode(‘ascii’) + b»\n»)
tn.read_until(b»(config)> «, timeout=1)
tn.write(‘show version’.encode(‘ascii’) + b»\n»)
time.sleep(2)
# Парсим вывод комманды
out = tn.read_very_eager().decode(‘ascii’)
out = out.split(‘ ‘)
i1 = out.index(‘description:’)
i2 = out.index(‘release:’)
i3 = out.index(‘device:’)
desM = (out[i1 + 1])+» «+(out[i1 + 2])+» «+(out[i1 + 3]).strip(‘\r\n\r\n(config)>’)
release = (out[i2 + 1]).strip(‘\r\n’)
device = (out[i3 + 1]).strip(‘\r\n’)

model =’ ‘

tn.read_until(b»(config)> «, timeout=2)
tn.write(‘show interface PPTP0’.encode(‘ascii’) + b»\n»)
time.sleep(2)
# Парсим вывод комманды
out1 = tn.read_very_eager().decode(‘ascii’)
out1 = out1.split(‘ ‘)
i5 = out1.index(‘description:’)
desO = (out1[i5 + 1]).strip(‘\r\n’)
#Запись данных в файл
handle = open(«test.txt», «a»)
handle.write (nowt+»;»+iprouter+»;»+VPNip+»;»+device+»;»+release+»;»+desO+»;»+desM+»;»+»\n»)
handle.close()

1. Проблема если возникает ошибка в скрипте например в массиве вывода нет данных description: либо device: (такое бывает довольно часто в разных моделях роутеров есть либо то либо то) скрипт останавливается не доходя до записи в файл Вопрос как это исправить

2.Можно ли как то настроить приоритет на случай если в выводе есть и description: и device: то значения переменных desM или device подставлялись в новую переменную скажем model именно в таком приоритете(1. desM 2. device)

Решенный вопрос
Добавить комментарий