12 / 12 / 1
Регистрация: 18.11.2013
Сообщений: 61

Как опросить маршрутизаторы по SSH с выводом информации о них в лог?

18.11.2013, 23:03. Показов 2403. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, коллеги!

Возникла нужда, с ней пришла и загвоздка. Появилась необходимость написать, именно на Python'е, скрипт, который по SSH подключается к устройствам с определенными IP адресами, в данном случае это маршрутизаторы с диапазоном адресов начиная с 10.6.1.1 и заканчивая 10.6.60.1, но заняты не все адреса, т.е. на каких-то оборудование не весит. Почти ко всем маршрутизаторам один и тот же пароль, но есть исключения, собственно этот скрипт должен в своей работе выяснить какие именно маршрутизаторы, а вернее с каким адресом имеют не общий пароль, и в случае если на каком-то IP-адресе нет ни какого оборудования, тоже об этом сообщить. И вывести информацию в какой-либо файл, приблизительно такого вида:

IP-адресс Информация

10.6.1.1 Стандартный пароль
10.6.2.1 Стандартный пароль
10.6.3.1 Нестандартный пароль
10.6.4.1 Аддрес свободный
........... ..................................


Заранее, благодарю, тех кто обратит внимание и согласится помочь с написанием.
P.S. В написании скриптов и программного кода ни опыта, ни навыка еще не имею, а скрипт этот нужен срочно

Добавлено через 2 часа 12 минут
Написали это, но оно вообще не пашит, даже логически

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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import paramiko
import os
 
hostname = ''
port = 22
username = 'root'
password = 'тра-та-та'
i = 1
number = ''
# Шапка вывода
print "IP-адресс \t Состояние"
while i <= 100
    number = str(i)
    hostname = '10.6.'+number+'.1'
    paramiko.util.log_to_file('paramiko.log')
    s = paramiko.SSHClient()
    s.connect(hostname, port, username, password)
    if s.connect(hostname, port, username,password) == false
        print hostname +" Пароль не zoo6Daem"
        s.closed
    else 
        print hostname + "zoo6Daem"
        # Список команд для ввода после установки подключения
        # stdin, stdout, stderr = s.exec_command('opkg install luci')
 
        stdin, stdout, stderr = s.exec_command('exit')
 
    s.closed
i = i + 1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2013, 23:03
Ответы с готовыми решениями:

Внос информации в БД по нажатию кнопки на сайте, с последующим выводом записанной информации
Подскажите пожалуйста, как реализовать внос информации в БД по нажатию кнопки на сайте, с последующим выводом записанной информации? ...

Как сделать поиск среди нескольких txt файлов с выводом информации?
Есть переменная File; в которой задан txt файл, как к данному php алгоритму подключить целый список таких txt файлов например от 0.txt до...

Как сделать, чтобы ssh-клиент использовал файл ~/.ssh/config?
centos ssh клиент не использует файл ~/.ssh/config для подгрузки хостов. за место этого, он пытает ресолвить название хоста как...

1
12 / 12 / 1
Регистрация: 18.11.2013
Сообщений: 61
20.11.2013, 08:29  [ТС]
Нашли решение, чуть переделали, в общем рабочий вариант скрипта, если кому понадобится выглядит так:


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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import paramiko
from paramiko import *
import os
import socket
import time
import subprocess
 
hostname = ''
port = 22
username = 'root'
password = 'пароль'
i = 0
number = ''
 
print "IP-адресс \t Состояние"
 
while i <= 80:
    
    number = str(i)
    hostname = '10.6.'+number+'.1'  
    paramiko.util.log_to_file('paramiko.log')
        s = paramiko.SSHClient()
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        s.connect(hostname, port, username, password, timeout = 3)
        print (hostname +"\t Пароль Пароль")
    except AuthenticationException:
        print (hostname + "\t Пароль не Пароль")
        pass
    except socket.timeout:
            print(hostname +"\t Адрес свободен")
        pass
    except SSHException:
        print (hostname + "\t Возникла иная ошибка")
        pass
    i = i + 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2013, 08:29
Помогаю со студенческими работами здесь

Как изменить ssh ключ локального репозитория, что бы был он, а не id.rsa из папки .ssh?
Как изменить ssh ключ локального репозитория, что бы был он, а не id.rsa из папки .ssh? Просто у меня есть 2 аккаунта на битбакете,...

Как опросить SCADA систему?
Добрый вечер коллеги. Появился интерес к вопросу как считать из приложения SCADA системы iFix значение тэга и записать в базу данных. Буду...

Как опросить устройства на наличие
Подскажите как опросить устройства компа: мышь, клавиатура и монитор. И узнать подключены ли они в данный момент к компьютеру или нет. ...

Лог коммутатора как перевести лог
Добрый день! Помогите пожалуйста перевести лог. Oct 12 14:33:49.378 MSK: %SEC-6-IPACCESSLOGDP: list Access_From_Guest_VLAN denied...

Как опросить дочерние компоненты у формы
есть вот такая вот форма +/- пару строк сверху, но это не интересно export const Form =({...props})=&gt; { return( ...


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

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

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru