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

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

Помогите, пожалуйста разобраться с trap сообщениями [D7, Win2k]


r9000 ©   (2004-05-14 08:38:00) 

Добрый день!

Вы не могли бы мне помочь. По snmp протоколу передается trap сообщения на мой компьютер. Я пытаюсь их поймать и расшифровать передавемые данные(в них информация о времени аварии, названии аварии и т.д.). Я пытаюсь использовать компонент Indy IdUDPServer:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;  ABinding: TIdSocketHandle);
var s:string;
   buffer : array [0..100] of char;
 
begin
Memo1.Lines.Add(abinding.PeerIP);

if adata.Read(buffer,100)<>0 then
begin
for i:=0 to 100 do
Memo1.Lines.Add(buffer[i]);
end;
end;

Получаются такие символы(после соединения):
10.10.35.36
0‚\x1O\x2\x1\x1\x4 SNMP_trap§‚\x1A\x2\x1\x10\x2\x1\x2\x10‚\x1?0\xF\x6\x8+\x6\x1\x2\x1\x1\x3C\x3\x1e?0\x1B\x6

+\x6\x1\x6\x3\x1\x1\x4\x1\x6+\x6\x1\x4\x1™y\x2\x2\x1\x4\x10\x12\x6+\x6\x1\x4\x1™y\x2\x2\x1\x3\x1\x2\x1
Как их расшифровать? В каком формате передаются данные?
Что нужно сделать, чтобы получить из них данные? Может для получения SNMP_trap нужно использовать другие компоненты,какие?
Может быть кто-нибудь подскажет как это сделать?
Заранее спасибо.


r9000   (2004-05-24 12:19:00) [1]

Спасибо большое функция http://www.ararat.cz/synapse/files/synasnap.zipпомогла.
Теперь значения SNMP_trap-сообщений принимаются!


r9000   (2004-05-17 09:14:00) [2]

А SNMP_trap-сообщения содержат только список переменных mib,к которым нужно обращаться с помощью команды get, чтобы выяснить их значения, или также их значения?


Verg   (2004-05-17 09:10:00) [3]

Пример работы с trap можно посмотреть в
http://www.ararat.cz/synapse/files/synasnap.zip


Digitman   (2004-05-17 08:46:00) [4]


> Тогда как сделать, чтобы получилось?


тогда определись для начала, что значит "расшифровать сообщение"

я вот глянул в RFC и что-то не вижу там, чтобы сообщение это подразумевало какое-то "шифрование"

опиши структуру сообщения в соответствии с RFC

type
TSNMPtrap = packed record
... // поля структуры в соответствии с RFC
end;

var
 buffer: TSNMPtrap;
if adata.Read(buffer, sizeof(buffer))  = sizeof(buffer) then
.. переменная buffer содержит упомянутое сообщение, делай с ним что хочешь


r9000   (2004-05-17 08:11:00) [5]

Тогда как сделать, чтобы получилось? Помогите, пожалуйста, если можно напримере, а то пока несоображу.


Digitman   (2004-05-17 08:07:00) [6]


> формат SNMP_trap-сообщения вроде понятен


значит, д.б. понятно, что это сообщение не имеет чисто текстовый формат

ты же, выполняя Lines.Add(buffer[i]) , из каких-то тайных соображений предполагаешь, что каждый байт сообщения является печатаемым ANSI-символом


r9000   (2004-05-17 07:52:00) [7]

Да нет формат SNMP_trap-сообщения вроде понятен, не понятно как его использовать на практике, скажем для моего конкретного примера?


Digitman   (2004-05-14 14:49:00) [8]


> r9000


> не очень-то понятно


непонятно что ? формат SNMP_trap-сообщения в этих док-тах описан по-китайски ?


r9000   (2004-05-14 14:45:00) [9]

А можно напримере,пожалуйста если кто-то этим занимался, а то не очень-то понятно, как это сделать в данном случае.


Digitman   (2004-05-14 09:57:00) [10]

http://book.itep.ru/4/44/snm_4413.htm
http://faqs.org.ru/lan/lan_faq/snmp.htm
http://www.delphiworld.narod.ru/base/snmp_protocol.html


Наверх

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