Гудвинволшебник (28.10.2016 18:14, просмотров: 199) ответил AlexG на Как бы попроще сделать серию технологических программ-терминалок для управления различным железом по SNMP? Т.е. с одной стороны, надо иметь возможность прочитать параметр/записать параметр/принять трап, но чтобы настройщик видел обычные виндовые
Блин, а чем delphi не угодил? Накидал в форму полей/memo и фпирёт. Обязательно какую-нить рыбу и жабу... Компоненты для SNMP имеются, примеров в сети море: { Функция SNMP опроса принтера }
Function SNMPQuery (Host, Mib: string) : string;
var
s: String;
i, j: Integer;
SNMP: TIdSNMP;
begin
SNMP := TIdSNMP.Create(nil);
SNMP.Query.Host := Host;
SNMP.Query.Port := 161;
SNMP.Query.Community := 'public';
SNMP.Query.PDUType := PDUGetRequest;
SNMP.Query.MIBAdd(Mib,'');
try
if SNMP.SendQuery then
for i := 0 to SNMP.Reply.ValueCount - 1 do
SNMPQuery:= SNMP.Reply.Value[i];
finally
SNMP.Free;
end;
end;
{ Опрос SNMP принтера }
procedure TForm1.Button3Click(Sender: TObject);
var
Host, t: string;
Begin
Memo1.Clear;
host:= '192.168.137.3';
mib1:= '1.3.6.1.2.1.43.11.1.1.8.1.1';
mib2:= '1.3.6.1.2.1.43.5.1.1.17.1';
mib3:= '1.3.6.1.2.1.25.3.5.1.1.1';
mib4:= '1.3.6.1.2.1.43.16.5.1.2.1.1';
mib5:= '1.3.6.1.2.1.1.5.0';
mib6:= '1.3.6.1.2.1.2.2.1.6.2';
mib7:= '1.3.6.1.2.1.43.10.2.1.4.1.1';
Memo1.Lines.Add('Объем картриджа' + ': ' + SNMPQuery(host, mib1));
Memo1.Lines.Add('Серийный номер' + ': ' + SNMPQuery(host, mib2));
Memo1.Lines.Add('Printing status' + ': ' + SNMPQuery(host, mib3));
Memo1.Lines.Add('Device status' + ': ' + SNMPQuery(host, mib4));
Memo1.Lines.Add('Host name' + ': ' + SNMPQuery(host, mib5));
Memo1.Lines.Add('Mac adress' + ': ' + SNMPQuery(host, mib6));
Memo1.Lines.Add('Page' + ': ' + SNMPQuery(host, mib7));
end;