Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с компонентом tidsnmp или заменить его. [D7, WinXP]


darkevil ©   (2007-11-10 16:49:00) 

Привет всем!
Задача следующая: есть несколько датчиков магнитных, открывания дверей. Они подключены к девайсу, который следить за их состоянием (открыто или закрыто), когда меняется состояние датчика, девайс посылает в сеть, на определённый ИП и порт 161, по протоколлу SNMP сообщение об этом (если не ошибаюсь trap называется). Задача в том чтобы поймать это сообщение прогой и показать состояние датчика. Думал сделать это с помощью компонента indy TidSnmp, но доков на него нету и нифига не выходит ловить эти сообщения. Кто-нить, подскажите как с этим компонентом работать? Или проще будет всё написать самому на UDP?


Oldnick   (2008-11-25 16:07:00) [1]

Все просто, idSNMP не умеет ловить трапы, он может только get и put.


alexm_hs_   (2008-09-23 21:41:00) [2]


>
> Понял, а я так хотел услышать про SNMP - так мало вопросов
> по нему.


Я разбирался немного в SNMP, но делал все на API из mgmtapi.dll, snmpapi.dll, wsnmp32.dll. Сложновато немного поначалу, но когда разберешься вроде нормально. А вопросы есть больше по структуре деревьев OIDов в разных коммутаторах. В частности, таблиц адресов в сетях с VLANами. Но это наверное не в этом форуме.

Недавно задавал тут же вопрос, как превратить MIB-файл (ASN-нотация) в дерево OID. Т.е. нужно написать свой компилятор. Но никто не ответил. Тема действительно темная для самоучек :)


lexx   (2008-09-22 16:44:00) [3]

учити яроглфы!
http://www.delphi2007.net/DelphiNetwork/html/delphi_200607191517311208.html#


darkevil   (2007-11-20 11:48:00) [4]


> Понял, а я так хотел услышать про SNMP - так мало вопросов
> по нему.

Да я тоже бы очень хотел услышать, но мне надо было срочно делать, а не разбираться в этом неизвестном компоненте.:)


Anatoly Podgoretsky   (2007-11-14 13:28:00) [5]

> darkevil  (14.11.2007 12:39:09)  [9]

Понял, а я так хотел услышать про SNMP - так мало вопросов по нему.


darkevil   (2007-11-14 12:40:00) [6]

DVM - Я то хотел понормальному сделать, т.к. в трапах, которые идут по SNMP уже есть инфа о том что произошло. А так пришлось самому на девайс лезть.


darkevil   (2007-11-14 12:39:00) [7]

Anatoly Podgoretsky - я не стал делать всё через SNMP, т.к. о нем мало инфы и нихрена нет примеров, я сделал сервак UDP и вылавливал, то что приходит на порт 162, а потом лез на сам девайс и считывал инфу о его состоянии.

З.Ы. Единственное что я так и не понял, так это, почему UDP ловил пакеты которые приходили на порт 162 (хоть и криво, но ловил), а сам компонент SNMP нет. Может это конечно из-за того что indy накасячили в нем. Об этом я где-то в инете читал, что в этом компоненте какие-то косяки.


DVM   (2007-11-13 17:57:00) [8]


> когда меняется состояние датчика, девайс посылает в сеть,
>  на определённый ИП и порт 161, по протоколлу SNMP сообщение
>

Чтобы принять информацию SNMP достаточно обычного сервера и просто потом ручками надо будет выделить из того, что принято нужную информацию.


Anatoly Podgoretsky   (2007-11-13 15:56:00) [9]

> darkevil  (13.11.2007 15:18:06)  [6]

Сложно?


darkevil   (2007-11-13 15:18:00) [10]

Ладно, разобрался сам. Всем спасибо.:)


umbra   (2007-11-12 17:21:00) [11]

Я сам этим компонентом не пользовался, но прочтите комментарий перед реализацией метода SendQueryв модуле IdSNMP. Там подробно описаны все шаги, необходимые для удачного вызова этого метода и что делать потом.


Anatoly Podgoretsky   (2007-11-12 15:47:00) [12]

> darkevil  (12.11.2007 14:20:03)  [3]

Очень редко используемый компонент.


darkevil   (2007-11-12 14:20:00) [13]

Ну что, никто не работал с этим компонентом?
Пишу вот это:

snmpsend:=TidSNMP.Create(nil);

snmpsend.Query.Host:='192.168.1.105';
snmpsend.Query.Community := 'public';
snmpsend.Query.PDUType := 0;
snmpsend.Query.MIBGet('1.3.6.1.2.1.1.1.0');

snmpsend.SendQuery;

Что я не так пишу? Т.к. прога даже не посылает запрос, т.к. snmpsend.SendQuery не возвращает true.


darkevil   (2007-11-11 23:42:00) [14]

Нет, я хочу чтобы мне помогли примером как работать с компонентом indy TidSnmp. Как ловить с его помощью trap.


Palladin   (2007-11-11 12:29:00) [15]

ты хочешь создать компонент свой?


Наверх

Титульная страница Поиск, карта сайта Написать письмо