Topic: Работа с протоколом SNMP (мониторинг устройств, например принтеров)

Работа с протоколом SNMP (мониторинг устройств, например принтеров в сети)
начиная с версии 5.3



procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    SNMP: TIdSNMP;
    i, idx: integer;
begin
    Form1.Memo1.Clear;

    SNMP := TIdSNMP.Create(nil);
    SNMP.Query.Host := Form1.Edit1.Text;
    SNMP.Query.Port := 161;
    SNMP.ReceiveTimeout := 5000;
    SNMP.Query.Community := 'public';
    SNMP.Query.PDUType := PDUGetRequest;
    SNMP.Query.MIBAdd(Form1.Edit2.Text,'');
    try
        if SNMP.SendQuery then               
        for i := 0 to SNMP.Reply.ValueCount - 1 do
        begin
            Form1.Memo1.Lines.Add ('Replies: ' + IntToStr(SNMP.Reply.ValueCount));
            for idx := 0 to SNMP.Reply.ValueCount - 1 do Form1.Memo1.Lines.Add(SNMP.Reply.Value[idx]);
        end else Form1.Memo1.Text := 'Failed';
     finally
        Application.ProcessMessages;
        SNMP.Free;
     end;

end;


Проект с примером:

Post's attachments

Attachment icon SNMP.zip 4.56 kb, 89 downloads since 2019-04-04 

Dmitry.