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

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

SNMP [D7]


Neket ©   (2006-08-01 12:04:00) 

Подскажите... Я при помощи следующего кода пытаюсь получить значение от SNMP агента (стандартного Вындового) но на запрос у меня в IdSNMP1.ReceiveBuffer ничего ни приходит. Подскажите где ошибка...

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
tr:boolean;
qwer:TSNMPInfo;
begin
IdSNMP1.Query.Clear;
IdSNMP1.Query.Host:='127.0.0.1';
IdSNMP1.Query.Port:=161;
IdSNMP1.Query.Version:=1;
IdSNMP1.Query.MIBAdd('1.3.6.1.2.1.1.1.0','');
IdSNMP1.Query.PDUType := PDUGetRequest;
IdSNMP1.Community := 'public';
IdSNMP1.Active:=true;
tr:=IdSNMP1.SendQuery;
if tr=true then showmessage('true1') else showmessage('False1');
IdSNMP1.ReceiveBuffer(qwer,8192);
Showmessage(qwer.MIBValue.Text);
end;


Neket   (2006-08-01 14:14:00) [1]

Кому интересно я впринципе нашел  можете посмотреть:


unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient,
 IdSNMP;
type
 TForm1 = class(TForm)
   snmp: TIdSNMP;
   Memo1: TMemo;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
origOID:string;
i:integer;
begin
   SNMP.Community := 'public';
   SNMP.Host := '202.202.202.202';
   SNMP.Query.Clear;
   origOID := '1.3.6.1.2.1.2.2.1.16';
   SNMP.Query.MIBAdd(origOID, '');
   SNMP.Query.PDUType := PDUGetNextRequest;
   while SNMP.SendQuery do
     begin
       if Copy(SNMP.Reply.MIBOID[0], 1, Length(origOID)) <> origOID then
         Break;
       for I := 0 to SNMP.Reply.ValueCount - 1 do
        memo1.Lines.Add(SNMP.Reply.Value[I]);
       SNMP.Query.Clear;
       SNMP.Query.MIBAdd(SNMP.Reply.ValueOID[0], '');
       SNMP.Query.PDUType := PDUGetNextRequest;
     end;
end;
end.


StriderMan   (2006-08-01 14:07:00) [2]

может это поможет?

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1153197410&n=18


Neket   (2006-08-01 13:34:00) [3]

Ну неужели нет специалистов в этой сфере?


Neket   (2006-08-01 12:30:00) [4]

Бесполезно... Уже все поперебробовал......
Мнебы хотябы какойнебудь простенький примерчик использования этой компаненты... В нете ничего подобного нет :-(


StriderMan   (2006-08-01 12:26:00) [5]


> Эт как? У мея отображается тока OnStatus

а точно. это я перепутал с компонентом IdSNMPClient.

Попробуй тайм-аут установить побольше. хотя localhost... должен сразу пингануться.


Neket   (2006-08-01 12:19:00) [6]

Эт как? У мея отображается тока OnStatus


StriderMan   (2006-08-01 12:18:00) [7]


> Neket   (01.08.06 12:15) [2]
> Дык нет там такого обработчика..... Тока OnStatus

Есть еще OnReply. Я думаю - как раз то что нужно.


Neket   (2006-08-01 12:15:00) [8]

Дык нет там такого обработчика..... Тока OnStatus


StriderMan   (2006-08-01 12:11:00) [9]


> tr:=IdSNMP1.SendQuery;
> if tr=true then showmessage('true1') else showmessage('False1');
>
> IdSNMP1.ReceiveBuffer(qwer,8192);

наверное просто не успевает дойти. Надо обрабатывать событие OnReceive.. (или как там оно называется....)


Наверх

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