Discussion:
Indy-SNMP Sample
(too old to reply)
Сектор СА
2022-10-06 19:46:13 UTC
Permalink
Just a little necromancy. 20 years later its looks like this (and working on lazarus)

var
Main: TMain;
IdSNMP1: TIdSNMP;
implementation
{$R *.lfm}

{ TMain }

procedure TMain.Button1Click(Sender: TObject);

var
eMIB: string;
begin
IdSNMP1 := TIdSNMP.Create;
eMIB := main.Mib.Text ;
idsnmp1.Active:=true;
idsnmp1.ReceiveTimeout:=5000;
IdSNMP1.Host := main.IP.Text;
IdSNMP1.Community := main.Community.text;
IdSNMP1.Port:=161;
IdSNMP1.Query.Clear;
idsnmp1.query.MIBOID.Add(eMIB);
IdSNMP1.Query.PDUType := PDUGetRequest;
idsnmp1.SendQuery;
try
if IdSNMP1.Reply.ValueCount>0 then begin
main.result2.lines.Add(idsnmp1.reply.Value[0]);
end;
finally
IdSNMP1.Free;
end;
end;

procedure TMain.Button2Click(Sender: TObject);
var
oid, origOid : string;
i : Integer;
begin
IdSNMP1 := TIdSNMP.Create;
IdSNMP1.Community := Community.Text; // defaults to 'public'
IdSNMP1.Host := IP.Text; // defaults to 127.0.0.1
oid := MIB.Text; // defaults to 1.3.6.1.2.1.1.1.0

if Copy (oid, Length (oid) - 1, 2) = '.0' then // strip trailing '.0'
oid := Copy (oid, 1, Length (oid) - 2);

origOID := oid;
IdSNMP1.Query.Clear;
IdSNMP1.Query.MIBAdd(oid, '');
IdSNMP1.Query.PDUType := PDUGetNextRequest;

Screen.Cursor := crHourGlass;

try
while IdSNMP1.SendQuery do
begin
if Copy (IdSNMP1.Reply.MIBOID [0], 1, Length (origOID)) <> origOID
then
break;
for i := 0 to IdSNMP1.Reply.ValueCount - 1 do main.Result2.lines.add(IdSNMP1.Reply.value[i]);
for i := 0 to IdSNMP1.Reply.ValueCount - 1 do main.lvResults.Items.Add(IdSNMP1.Reply.value[i]);

//showresults; //почему то не работает если вызывать, но работает код выше
IdSNMP1.Query.Clear;
IdSNMP1.Query.MIBAdd(IdSNMP1.Reply.ValueOID [0], '');
IdSNMP1.Query.PDUType := PDUGetNextRequest
end
finally
Screen.Cursor := crDefault;
IdSNMP1.Free;
end
end;
Сектор СА
2022-10-06 19:51:29 UTC
Permalink
Post by Сектор СА
for i := 0 to IdSNMP1.Reply.ValueCount - 1 do main.lvResults.Items.Add(IdSNMP1.Reply.value[i]);
This is unused, sorry

Loading...