Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: сбор информации по SNMP  (Прочитано 20861 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Junk
Гость
« : 04-08-2006 14:16 » 

Народ,
есть необходимость в сети собирать информацию о работе компьютеров, используя SNMP-протокол. (вроде он позволяет собирать информацию о кол-ве поступивших/отправленных данных на такой-то протокол по такому-то порту).
Не знаю тока с чего начать. Надо на компьютере, кот. всю эту инфу собирает, представить в удобном виде. Нужно писать все самому или есть какие-то стандартные средства, кот. настраиваются на отображение нужных данных?
Записан
Junk
Гость
« Ответ #1 : 07-08-2006 08:23 » 

С чего хотябы начинать?
Какой-нибудь учебник или документация по созданию таких приложений?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 07-08-2006 17:46 » 

Junk, попробуй начать с поиска.

Отдельные порты SNMP не считает. Есть счетчики интерфейсов, есть IP, ICMP, TCP, UDP, но выше не поднимается.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Junk
Гость
« Ответ #3 : 07-08-2006 19:18 » 

Мне нужно программу-клиент, кот. будет собирать информацию с агентов на др. компьютерах. Почитал MSDN, но пока не понял с чего начинать. Маленький пример, please. Типа:
1. инициализируем
2. посылаем запрос
3. получаем ответ
... или куак там
Записан
Junk
Гость
« Ответ #4 : 09-08-2006 08:37 » 

Не понимаю, что неправильно делаю:
хочу использовать в программе функцию SnmpMgrOpen();
включаю #include "Mgmtapi.h"
но при компиляции выдается ошибка: unresolved external symbol _SnmpMgrOpen@16
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 09-08-2006 16:00 » 

Junk, мало включить заголовок в компиляцию, нужно еще и библиотеку включить в линковку.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Junk
Гость
« Ответ #6 : 10-08-2006 06:38 » 

подскажи, пожалуйста, как
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 10-08-2006 15:52 » 

См. настройки проекта. Там где файлы с расширением lib упомянуты.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Junk
Гость
« Ответ #8 : 15-08-2006 14:29 » 

есть такая функция
SNMPAPI_STATUS SnmpSendMsg(
  HSNMP_SESSION session,
  HSNMP_ENTITY srcEntity,
  HSNMP_ENTITY dstEntity,
  HSNMP_CONTEXT context,
  HSNMP_PDU PDU
);

Может вопрос и покажется глупым, но я все-таки не могу понять что это за параметры и как их задавать:

srcEntity - Handle to the management entity that initiates the request to send the SNMP message.
dstEntity - Handle to the target entity that will respond to the SNMP request.
context - Handle to the context, (a set of managed object resources), that the target management entity controls
Записан
Junk
Гость
« Ответ #9 : 16-08-2006 09:38 » 

вот тоже не понятно:
HSNMP_CONTEXT SnmpStrToContext(
  HSNMP_SESSION session,
  smiLPCOCTETS string
);


Parameters
session
[in] Handle to the WinSNMP session.
string
[in] Pointer to an smiOCTETS structure that contains a string to interpret. The string can identify a collection of managed objects, or it can be a community string.

Что значит "The string can identify a collection of managed objects"? Что такое "collection of managed objects"?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 16-08-2006 16:27 » 

Набор управляемых объектов.
Может имеется в виду строка с номерами узлов? Типа "1.3.1..."
Там у темя в доке примеров вообще нет?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Junk
Гость
« Ответ #11 : 17-08-2006 06:55 » 

это из MSDN
Примеров в доке не нашел
Записан
Junk
Гость
« Ответ #12 : 17-08-2006 07:30 » 

HSNMP_CONTEXT SnmpStrToContext(
  HSNMP_SESSION session,
  smiLPCOCTETS string
);


В немногочисленных кодах, найденных в интернете, в smiLPCOCTETS пихают имя группы (community name).

HSNMP_CONTEXT hContext;
smiOCTETS dContext = {6, (unsigned char *)"public"};
hContext = SnmpStrToContext(hSession, &dContext);


Вроде работает.
Записан
Junk
Гость
« Ответ #13 : 17-08-2006 09:32 » 

Подскажите, пожалуста, как получить информация из базы MIB с группа interface (1.3.6.1.2.1.2) информацию о количестве и характеристиках интерфейсов.
Когда я запрашиваю имя 1.3.6.1.2.1.2.1.0 (ifNumber), возвращается количество интерфейсов. Но непонятно как достать саму инфу об этих интерфейсах, если их несколько штук. И надо ли пользоваться командой GetNext или в ответе приходит инфа сразу обо всех имеющихся?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 18-08-2006 09:45 » new

Junk, насколько помню, интерфейсы хранятся в таблице. Можно получить число записей в таблице и перебрать таблицу. В MIB-2 посмотри.
Прикладываю файлик описания IF-MIB из библиотеки net-snmp.

Я API не пользовался - только утилитами и подсказать как делать не могу.

* IF-MIB.rar (10.16 Кб - загружено 1269 раз.)
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines