Обнаружение сети с использованием 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, легко добавить свой собственный слой визуализации сверху.