Junk
Гость
|
|
« : 04-08-2006 14:16 » |
|
Народ, есть необходимость в сети собирать информацию о работе компьютеров, используя SNMP-протокол. (вроде он позволяет собирать информацию о кол-ве поступивших/отправленных данных на такой-то протокол по такому-то порту). Не знаю тока с чего начать. Надо на компьютере, кот. всю эту инфу собирает, представить в удобном виде. Нужно писать все самому или есть какие-то стандартные средства, кот. настраиваются на отображение нужных данных?
|
|
|
Записан
|
|
|
|
Junk
Гость
|
|
« Ответ #1 : 07-08-2006 08:23 » |
|
С чего хотябы начинать? Какой-нибудь учебник или документация по созданию таких приложений?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #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
|
|
« Ответ #5 : 09-08-2006 16:00 » |
|
Junk, мало включить заголовок в компиляцию, нужно еще и библиотеку включить в линковку.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Junk
Гость
|
|
« Ответ #6 : 10-08-2006 06:38 » |
|
подскажи, пожалуйста, как
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #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
|
|
« Ответ #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
|
|
« Ответ #14 : 18-08-2006 09:45 » |
|
Junk, насколько помню, интерфейсы хранятся в таблице. Можно получить число записей в таблице и перебрать таблицу. В MIB-2 посмотри. Прикладываю файлик описания IF-MIB из библиотеки net-snmp.
Я API не пользовался - только утилитами и подсказать как делать не могу.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|