Обнаружение сети с использованием SNMP в JAVA

Есть ли какой-нибудь пример / учебник по Java для управления диапазонами IP-адресов и обнаружения сети с использованием SNMP в JAVA? Я нашел эту ссылку, но я нахожусь на Windows, и это не полезно в моем случае.

PS: я могу использовать ping и и программирование потоков, но я ищу что-то конкретное для протокола SNMP.

Любая помощь будет принята с благодарностью, потому что я искал некоторое время с ничего не найдено.

2 ответа

Посмотрите на Apache Commons-Net:

String[] addresses = 
       new SubnetUtils("192.168.0.0/16").getInfo().getAllAddresses();

Затем вы можете выполнить snmpget с SNMP4j (например, классический SNMPv2-MIB::sysDescr.0) и посмотреть, получите ли вы описание или ноль.

Если вы хотите сделать что-то более сложное, например, определить топологию своей сети, вам понадобится не только выполнять snmp-запросы, но и выполнять snmpwalks. Поскольку анализировать и обрабатывать все выходные данные snmpwalk может быть нетривиально, вам может понадобиться что-то вроде snmp2xml4j, чтобы пройтись, сделать xml и затем преобразовать его во что-то более полезное. Например, netTransformer использует этот подход для генерации файлов graphml из необработанных данных snmp. Как только вы получите graphml, легко добавить свой собственный слой визуализации сверху.

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