Как найти все устройства с поддержкой snmp в моей сети?

Я хочу найти все устройства с поддержкой snmp в моей сети, у меня есть что-то вроде того, как это работает в архитектуре агента и менеджера.

У меня есть библиотека net-snmp для создания простого приложения для получения данных snmp с удаленного устройства. Мне нужно написать программу для этого, мне нужен MAC-адрес устройства и некоторую дополнительную информацию.

У меня есть программа для получения данных с удаленного узла, но у меня есть одно сомнение, как получить MAC-адрес системы и каков идентификатор для получения Mac устройства,

Существуют ли какие-либо общие oids, которые не будут зависеть от конкретного поставщика. Я должен получить данные для всех устройств.

Некоторые обновления:

Теперь с помощью инструментов snmp snmpwalk я получаю информацию о майе, но я хочу получить некоторую системную информацию, mac, имя os, если доступно, но я знаю, как программировать, используя net-snmp, чтобы получить эту информацию, поскольку я не знаю универсальный oid, по какой системе имя придет. Я хочу написать программу, и мне нужно получить некоторую необходимую информацию, поэтому мне нужен oid, я должен передать этот oid функции net-Snmp, чтобы он дал мне основной ответ.

Я должен использовать строковое имя, например sysName, чтобы получить системное имя. Если это так, то в случае MAC-адреса там написано "ifPhysAddress.2", а затем упоминается mac (в результате snmpwalk). получить Mac, как он отличается для всех устройств.

когда я использую snmpwalk, я получаю одну строку следующим образом

SNMPv2-SMI::mib-2.25.3.2.1.3.1 = STRING: "HP LaserJet Professional P1606dn"

Это имя принтера. Означает, что этот oid предназначен для получения имени принтера (mib-2.25.3.2.1.3.1). Верно ли это для всех устройств, означает, что если я сделаю запрос к этому oid, я получу имя устройства с соответствующим IP-адресом, каким бы оно ни было. Это правильно или нет.

Пожалуйста, дайте некоторую идею.

Спасибо

3 ответа

Вы можете использовать snmap-brute в Nmap

nmap -sU -p161 --script snmp-brute --script-args snmplist=community.lst 192.168.1.0/24

Многие приложения мониторинга будут включать инструмент обнаружения сети, который может запрашивать snmp на всех обнаруженных устройствах. Некоторые даже позволят вам ввести несколько строк сообщества SNMP, и он попробует каждую из них.

Вот скрипт, который я использую с OpenNMS, который сгенерирует XML-файл, содержащий устройства с поддержкой snmp и их соответствующие сообщества.

Он принимает IP-адреса и несколько имен сообществ в качестве входных файлов.

Другие вопросы по тегам