Toon posts:

[DELPHI] Indy en SNMP

Pagina: 1
Acties:
  • 642 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig om een SNMP Proxy Agent te schrijven (een tool wat SNMP functionaliteiten toevoegt aan hardware of software dat geen SNMP support heeft).
Dit doe ik met Delphi in combinatie met Indy.

Echter, het wil me nog niet echt lukken. Traps versturen gaat prima (met QuickSendTrap), maar data voor in de MIBs wil niet lukken (met behulp van QuickSend).

Ik gebruik Castle Rock's SNMPc als beheer tool (daar zie ik dus ook de traps binnen komen).

Heeft iemand hier alleens wat mee gedaan? Tips? Voorbeeld code? Op internet is er namelijk vrijwel niets over te vinden.

Verwijderd

Topicstarter
Oke, hier blijkbaar ook niemand met enige Delphi + SNMP ervaring??

Ik zal mijn vraag wat minder breed stellen:

Het SNMP component van Indy heeft de volgende functie:

function QuickSendTrap(const Dest: string; const Enterprise: string;
const Community: string; Port: integer; Generic: integer; Specific: integer;
MIBName: TStringList; MIBValue: TStringList): integer;

Ik heb nu een aantal vragen:
A. Wat doet deze functie? Uitgaande van de naam zou ik zeggen een trap versturen, dit doet die ook daadwerkelijk, maar waarom zijn dan de variabelen MIBName en MIBValue? Normaal gesproken worden de MIBs toch niet gevuld bij een trap??
B. Die MIBName en MIBValue, waarom zijn dat StringList's? Voor het geval er meer dan één waarde in de MIB geplaatst wordt?
C. Waarom is QuickSendTrap een functie? Wat kan ik afleiden uit de terug gegeven integer?
D. Waarom raist de volgende code wel een trap, maar wordt de MIB niet gevuld?
code:
1
2
3
4
5
b := TStringList.Create;
b.Add('sysDescr');
a := TStringList.Create;
a.Add('Sweet');
Edit1.Text := IntToStr(IdSNMP1.QuickSendTrap('10.40.0.255','snmp','public',161,2,1,b,a));


edit:
typo

[ Voor 4% gewijzigd door Verwijderd op 26-08-2003 11:54 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Wat zegt de Indy help er van? Heb je ook de laatste Indy demo's en help gedownload? Heb je al in de Indy newsgroups gekeken?

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
De Indy help zegt dus niet veel meer dan wat ik hierboven poste. De syntax en als description: QuickSendTrap. (vorige week gedownload)

Welke demo's denk jij aan, want ik heb geen SNMP demo's gevonden.

En de nieuwsgroepen kan ik hier niet bij op me werk, en de webbased forum werkt bijzonder slecht (posten kan niet)

edit:
aanvullen

[ Voor 29% gewijzigd door Verwijderd op 26-08-2003 14:14 ]


Verwijderd

Google zegt http://www.atozedsoftware.com/indy/Demos/index.iwp
>> http://downloads.atozedsoftware.com/indy/SendMail.zip is zo'n voorbeeld
Kijk eens onder 'Concepts / Components Demonstrated' daar staan de gebruikte indy objecten
Misschien heeft ie er wat aan

Verwijderd

Topicstarter
SendMail werkt met SMTP
Ik werk met SNMP

klinkt hetzelfde, schrijf je ook best wel redelijk hetzelfde, maar is iets heel anders.

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 08:07
Download de source vanaf http://indy.fulgan.com/Indy10/IdSNMP.pas.

En kijk wat er gebeurt met de inhoud van die MIBname en MIBvalue. Het eerste wat me opviel, is dat ook MIBvalue[x].object wordt gebruikt.

Maar dat moet je verder kunnen helpen.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Kort stukje code dat ik vond. Nog geen demo kunnen vinden. Misschien in de beta van de nieuwe versie?
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
  IdSNMP1.active:=true;
  IdSNMP1.Query.Clear;
  IdSNMP1.Query.Host:='192.168.100.1';
  IdSNMP1.Query.Port:=161;
  IdSNMP1.Query.MIBAdd('1.3.6.1.2.1.1.1.0','');
  IdSNMP1.Query.PDUType:=PDUGetRequest;
  IdSNMP1.SendQuery;
  if IdSNMP1.Reply.ValueCount>0 then
      Edit1.Text:=IntToStr(IdSNMP1.Reply.ValueCount)+':'+IdSNMP1.Reply.Value[0]
  else
      Edit1.Text:='Value count zero';
  IdSNMP1.active:=false;

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Ha ik vondt dit met Google
http://www.ararat.cz/synapse/index.htm
Where can I find SNMP TRAP demo?
If you not found demo in DEMO subdirectory in synapse.zip, try to search contributed download. You can find interesting stuff under articles too.
Een beschrijving van die Synapse library zei me dit
Why Synapse instead Indy?
Indy is very large and complex set of complicated classes. In many cases you need simple thinks. Why use very large Indy? Use small Synapse! Synapse is very simple and maximal versatile.

In my opinion, Indy and Synapse is for different purpose. This is reason, why I develop Synapase. This is reason, why I helping to Indy.

And IMHO Synapse is much better with nearly 100% kompatibility between Windows and Linux platform. Indy have lot of problems in Linux platform!
Dus waar ik ze kon vinden stond onderaan op de hoofdpagina
Unsupported contributed area...
contributed downloads
FTP client thread, visual component for SNMP, SNMPtrap demo, etc
>> http://www.ararat.cz/synapse/files/contrib/Trap.zip Dit ziet er mij een demo uit van hoe je een Trap verzend en ontvangt met 1 waarde voor MIBdinges:
Delphi:
1
2
MIBName, MIBValue: string;
MIBtype: integer;


ik ken niets van SNMP af maar ik denk dat deze wel voldoende is en misschien een beter alternatief (gratis) tov van Indy.

[ Voor 6% gewijzigd door Verwijderd op 26-08-2003 19:31 ]


Verwijderd

Topicstarter
Allereerst heel erg bedankt voor de reply's, they sure did help!

Maaaaaar, nu heb ik de volgende code gebakken, de trap wordt ge-raist, maar de MIB niet gevuld (MIB 1.3.6.1.2.1.1.5 = sysName). Waarom niet?

Delphi:
1
2
3
4
5
6
7
8
9
10
IdSNMP1.Trap.Clear;
IdSNMP1.Trap.Host := '10.40.0.39';
IdSNMP1.Trap.Port := 162;
IdSNMP1.Trap.MIBAdd('1.3.6.1.2.1.1.5', 'Henk');
IdSNMP1.Trap.PDUType := PDUGetRequest;
IdSNMP1.Trap.Enterprise := 'snmp';
IdSNMP1.Trap.Community := 'public';
IdSNMP1.Trap.GenTrap := 1;
IdSNMP1.Trap.SpecTrap := 1;
IdSNMP1.SendTrap;


Eigenlijk is me probleem dus nog steeds hetzelfde als bij de start van dit topic.

[ Voor 13% gewijzigd door Verwijderd op 27-08-2003 13:51 ]

Pagina: 1