![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с компонентом 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]ты хочешь создать компонент свой?