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